Corrected MM doc column remark and add ignore for bug
This commit is contained in:
parent
ba525f6982
commit
c0e5480e4b
|
@ -130,7 +130,14 @@ public class DocModelWriter {
|
|||
schemaNode.addNode(createNodeTable(table));
|
||||
}
|
||||
for (Relationship rs:schema.getRelationships()) {
|
||||
schemaNode.addNode(createNodeRelationship(rs));
|
||||
MaisDocNode rsNode = createNodeRelationship(rs);
|
||||
if (rsNode.getId().length() > 255) {
|
||||
// TODO-1 track BUG in meta-model
|
||||
// TODO-2 change or add code for limit as nx01/pom.xml also generated an too long path
|
||||
System.out.println("BUG ignored: " + rs);
|
||||
continue;
|
||||
}
|
||||
schemaNode.addNode(rsNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -163,6 +170,10 @@ public class DocModelWriter {
|
|||
String name = rsName(rs);
|
||||
return new MaisDocNode(rs,name,name,name);
|
||||
}
|
||||
|
||||
// BUG in lastest meta-model code
|
||||
// java.io.IOException: java.io.FileNotFoundException: (File name too long)
|
||||
// c_validcombination_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_validcombination_id_c_acctschema_gl_currencybalancing_acct_incomesummary_acct_intercompanydueto_acct_intercompanyduefrom_acct_ppvoffset_acct_retainedearning_acct_suspensebalancing_acct_suspenseerror_acct_cfs_order_acct_rs
|
||||
|
||||
private String rsName(Relationship rs) {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
|
|
|
@ -33,6 +33,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.metamodel.DataContext;
|
||||
import org.eobjects.metamodel.doc.jdbc.DBIndex;
|
||||
|
@ -52,6 +53,7 @@ import org.x4o.maisdoc.model.MaisDocNode;
|
|||
import org.x4o.maisdoc.model.MaisDocNodeBody;
|
||||
import org.x4o.maisdoc.model.MaisDocWriteEvent;
|
||||
import org.x4o.sax3.SAX3WriterHtml.Tag;
|
||||
import org.x4o.sax3.io.ContentCloseable;
|
||||
|
||||
public class DocModelWriterTable {
|
||||
|
||||
|
@ -82,6 +84,24 @@ public class DocModelWriterTable {
|
|||
}
|
||||
}
|
||||
|
||||
private List<Relationship> rsFilterColumn(Collection<Relationship> rsa,Column column,boolean filterPrimary) {
|
||||
List<Relationship> filtered = rsFilter(rsa, column.getTable(), filterPrimary);
|
||||
List<Relationship> result = new ArrayList<Relationship>(10);
|
||||
for (Relationship rs: filtered) {
|
||||
if (!filterPrimary) {
|
||||
if (!rs.getPrimaryColumns().contains(column)) {
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
if (!rs.getForeignColumns().contains(column)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
result.add(rs);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Relationship> rsFilter(Collection<Relationship> rsa,Table table,boolean filterPrimary) {
|
||||
List<Relationship> result = new ArrayList<Relationship>(10);
|
||||
for (Relationship rs : rsa) {
|
||||
|
@ -154,13 +174,14 @@ public class DocModelWriterTable {
|
|||
} else {
|
||||
event.getWriter().printCharacters("View "+table.getQualifiedLabel());
|
||||
}
|
||||
|
||||
DBTable tableDB = getDBTable(event);
|
||||
if (tableDB!=null && tableDB.getSqlScript()!=null) {
|
||||
writeSqlBlock(writer,tableDB.getSqlScript());
|
||||
for (DBIndex index:tableDB.getIndexes()) {
|
||||
if (index.getSqlScript()!=null) {
|
||||
writeSqlBlock(writer,index.getSqlScript());
|
||||
try (ContentCloseable content = writer.docPageContent()) {
|
||||
writeSqlBlock(writer,tableDB.getSqlScript());
|
||||
for (DBIndex index:tableDB.getIndexes()) {
|
||||
if (index.getSqlScript()!=null) {
|
||||
writeSqlBlock(writer,index.getSqlScript());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -169,15 +190,19 @@ public class DocModelWriterTable {
|
|||
@MaisDocNodeWriterMethod(nodeBody=MaisDocNodeBody.SUMMARY,targetClasses={Table.class},nodeBodyOrders={3},contentGroup="Columns",contentGroupType="summary")
|
||||
public void writeTableSummary(MaisDocWriteEvent<MaisDocNode> event) throws IOException {
|
||||
MaisDocContentWriter writer = event.getWriter();
|
||||
Table table = (Table)event.getEventObject().getUserData();
|
||||
Table table = (Table)event.getEventObject().getUserData();
|
||||
if (TableType.VIEW.equals(table.getType())) {
|
||||
writer.docTableStart("Column Summary", "All column of the view.",null);
|
||||
} else {
|
||||
writer.docTableStart("Column Summary", "All column of the table.",null);
|
||||
}
|
||||
writer.docTableHeader("Name", "Description");
|
||||
for (Column column:table.getColumns()) {
|
||||
writer.docTableRowLink("#"+MaisDocContentWriter.toSafeUri(column.getName()),column.getName(),column.getQualifiedLabel());
|
||||
for (Column column : table.getColumns()) {
|
||||
String desc = column.getRemarks();
|
||||
if (desc == null || desc.isEmpty()) {
|
||||
desc = column.getQualifiedLabel();
|
||||
}
|
||||
writer.docTableRowLink("#" + MaisDocContentWriter.toSafeUri(column.getName()), column.getName(), desc);
|
||||
}
|
||||
writer.docTableEnd();
|
||||
}
|
||||
|
@ -380,11 +405,11 @@ public class DocModelWriterTable {
|
|||
}
|
||||
writer.printTagEnd(Tag.pre);
|
||||
|
||||
|
||||
writer.printTagStart(Tag.div,MaisDocContentCss.block);
|
||||
writer.printCharacters("Description: ");
|
||||
writer.printCharacters(column.getQuotedName());
|
||||
writer.printTagEnd(Tag.div);
|
||||
if (column.getRemarks()!=null && !column.getRemarks().isEmpty()) {
|
||||
writer.printTagStart(Tag.div,MaisDocContentCss.block);
|
||||
writer.printCharacters(column.getRemarks());
|
||||
writer.printTagEnd(Tag.div);
|
||||
}
|
||||
|
||||
writer.printTagStart(Tag.dl);
|
||||
if (column.isIndexed()) {
|
||||
|
@ -420,17 +445,49 @@ public class DocModelWriterTable {
|
|||
}
|
||||
}
|
||||
|
||||
writer.printTagStart(Tag.dt);
|
||||
writer.printTagStart(Tag.span,MaisDocContentCss.strong);
|
||||
writer.printCharacters("References:");
|
||||
writer.printTagEnd(Tag.span);
|
||||
writer.printTagEnd(Tag.dt);
|
||||
writer.printTagStart(Tag.dd);
|
||||
writer.printTagStart(Tag.code);
|
||||
writer.printCharacters("test_IDX");
|
||||
writer.printTagEnd(Tag.code);
|
||||
writer.printCharacters(" - FK");
|
||||
writer.printTagEnd(Tag.dd);
|
||||
if (!TableType.VIEW.equals(table.getType())) {
|
||||
Iterator<Relationship> rsIn = rsFilterColumn(table.getRelationships(),column,false).iterator();
|
||||
Iterator<Relationship> rsOut = rsFilterColumn(table.getRelationships(),column,true).iterator();
|
||||
|
||||
if (rsIn.hasNext()) {
|
||||
writer.printTagStart(Tag.dt);
|
||||
writer.printTagStart(Tag.span,MaisDocContentCss.strong);
|
||||
writer.printCharacters("Referenced:");
|
||||
writer.printTagEnd(Tag.span);
|
||||
writer.printTagEnd(Tag.dt);
|
||||
|
||||
while (rsIn.hasNext()) {
|
||||
Relationship rs = rsIn.next();
|
||||
String uri = "../../"+MaisDocContentWriter.toSafeUri(rs.getForeignTable().getSchema().getName())+"/"+MaisDocContentWriter.toSafeUri(rs.getForeignTable().getName())+"/index.html";
|
||||
String cols = rs.getForeignColumns().stream().map(v -> v.getName()).collect(Collectors.joining(" - "));
|
||||
writer.printTagStart(Tag.dd);
|
||||
writer.printTagStart(Tag.code);
|
||||
writer.printHref(uri, rs.getForeignTable().getName() + "." + cols);
|
||||
writer.printTagEnd(Tag.code);
|
||||
writer.printTagEnd(Tag.dd);
|
||||
}
|
||||
}
|
||||
|
||||
if (rsOut.hasNext()) {
|
||||
writer.printTagStart(Tag.dt);
|
||||
writer.printTagStart(Tag.span,MaisDocContentCss.strong);
|
||||
writer.printCharacters("References:");
|
||||
writer.printTagEnd(Tag.span);
|
||||
writer.printTagEnd(Tag.dt);
|
||||
|
||||
while (rsOut.hasNext()) {
|
||||
Relationship rs = rsOut.next();
|
||||
String uri = "../../"+MaisDocContentWriter.toSafeUri(rs.getPrimaryTable().getSchema().getName())+"/"+MaisDocContentWriter.toSafeUri(rs.getPrimaryTable().getName())+"/index.html";
|
||||
String cols = rs.getPrimaryColumns().stream().map(v -> v.getName()).collect(Collectors.joining(" - "));
|
||||
writer.printTagStart(Tag.dd);
|
||||
writer.printTagStart(Tag.code);
|
||||
writer.printHref(uri, rs.getPrimaryTable().getName() + "." + cols);
|
||||
writer.printTagEnd(Tag.code);
|
||||
writer.printTagEnd(Tag.dd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
writer.printTagEnd(Tag.dl);
|
||||
|
||||
writer.docPageBlockEnd();
|
||||
|
|
Loading…
Reference in a new issue