📄 entityref_main.jsp
字号:
}
%>
<%}%>
</tr>
<%
}
if (entity.getRelationsSize() > 0) {
%>
<tr bgcolor="#FFCCCC">
<td colspan="5"><hr></td>
</tr>
<tr class='headertext'>
<td align="center">Relation</td>
<td align="center" colspan='4'>Type</td>
</tr>
<%
// TODO: not displaying indexes, but do some checks on them anyway
if (checkWarnings) {
Iterator indexIter = entity.getIndexesIterator();
while (indexIter.hasNext()) {
ModelIndex index = (ModelIndex) indexIter.next();
if (indexNames.contains(index.getName())) {
warningList.add("<span style=\"color: red;\">[IndexDuplicateName]</span> Index on entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> has a duplicate index-name \"" + index.getName() + "\".");
} else {
indexNames.add(index.getName());
}
if (tableNames.contains(index.getName())) {
warningList.add("<span style=\"color: red;\">[IndexTableDupName]</span> Index on entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> has an index-name \"" + index.getName() + "\" that is also being used as a table name.");
}
if (fkNames.contains(index.getName())) {
warningList.add("<span style=\"color: red;\">[IndexFKDupName]</span> Index on entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> has an index-name \"" + index.getName() + "\" that is also being used as a Foreign Key name.");
}
// make sure all names are <= 18 characters
if (index.getName().length() > 18) {
warningList.add("<span style=\"color: red;\">[IndexNameGT18]</span> The index name " + index.getName() + " (length:" + index.getName().length() + ") was greater than 18 characters in length for entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
}
}
}
TreeSet relations = new TreeSet();
for (int r = 0; r < entity.getRelationsSize(); r++) {
ModelRelation relation = entity.getRelation(r);
if (checkWarnings) {
if (!entityNames.contains(relation.getRelEntityName())) {
warningList.add("<span style=\"color: red;\">[RelatedEntityNotFound]</span> Related entity <b>" + relation.getRelEntityName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> not found.");
}
if (relations.contains(relation.getTitle() + relation.getRelEntityName())) {
warningList.add("<span style=\"color: red;\">[RelationNameNotUnique]</span> Relation <b>" + relation.getTitle() + relation.getRelEntityName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is not unique for that entity.");
} else {
relations.add(relation.getTitle() + relation.getRelEntityName());
}
if (relation.getFkName().length() > 0) {
if (fkNames.contains(relation.getFkName())) {
warningList.add("<span style=\"color: red;\">[RelationFkDuplicate]</span> Relation to <b>" + relation.getRelEntityName() + "</b> from entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> has a duplicate fk-name \"" + relation.getFkName() + "\".");
} else {
fkNames.add(relation.getFkName());
}
if (tableNames.contains(relation.getFkName())) {
warningList.add("<span style=\"color: red;\">[RelationFkTableDup]</span> Relation to <b>" + relation.getRelEntityName() + "</b> from entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> has an fk-name \"" + relation.getFkName() + "\" that is also being used as a table name.");
}
if (indexNames.contains(relation.getFkName())) {
warningList.add("<span style=\"color: red;\">[RelationFkTableDup]</span> Relation to <b>" + relation.getRelEntityName() + "</b> from entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> has an fk-name \"" + relation.getFkName() + "\" that is also being used as an index name.");
}
}
// make sure all FK names are <= 18 characters
if (relation.getFkName().length() > 18) {
warningList.add("<span style=\"color: red;\">[RelFKNameGT18]</span> The foregn key name (length:" + relation.getFkName().length() + ") was greater than 18 characters in length for relation <b>" + relation.getTitle() + relation.getRelEntityName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
}
ModelEntity relatedEntity = null;
try {
relatedEntity = reader.getModelEntity(relation.getRelEntityName());
} catch (GenericEntityException e) {
Debug.log("Entity referred to in relation is not defined: " + relation.getRelEntityName());
}
if (relatedEntity != null) {
//if relation is of type one, make sure keyMaps match the PK of the relatedEntity
if ("one".equals(relation.getType()) || "one-nofk".equals(relation.getType())) {
if (relatedEntity.getPksSize() != relation.getKeyMapsSize())
warningList.add("<span style=\"color: red;\">[RelatedOneKeyMapsWrongSize]</span> The number of primary keys (" + relatedEntity.getPksSize() + ") of related entity <b>" + relation.getRelEntityName() + "</b> does not match the number of keymaps (" + relation.getKeyMapsSize() + ") for relation of type one \"" + relation.getTitle() + relation.getRelEntityName() + "\" of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
for (int repks = 0; repks < relatedEntity.getPksSize(); repks++) {
ModelField pk = relatedEntity.getPk(repks);
if(relation.findKeyMapByRelated(pk.getName()) == null) {
warningList.add("<span style=\"color: red;\">[RelationOneRelatedPrimaryKeyMissing]</span> The primary key \"<b>" + pk.getName() + "</b>\" of related entity <b>" + relation.getRelEntityName() + "</b> is missing in the keymaps for relation of type one <b>" + relation.getTitle() + relation.getRelEntityName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
}
}
}
}
//make sure all keyMap 'fieldName's match fields of this entity
//make sure all keyMap 'relFieldName's match fields of the relatedEntity
for (int rkm=0; rkm < relation.getKeyMapsSize(); rkm++) {
ModelKeyMap keyMap = (ModelKeyMap)relation.getKeyMap(rkm);
ModelField field = entity.getField(keyMap.getFieldName());
ModelField rfield = null;
if(relatedEntity != null) {
rfield = relatedEntity.getField(keyMap.getRelFieldName());
}
if(rfield == null) {
warningList.add("<span style=\"color: red;\">[RelationRelatedFieldNotFound]</span> The field \"<b>" + keyMap.getRelFieldName() + "</b>\" of related entity <b>" + relation.getRelEntityName() + "</b> was specified in the keymaps but is not found for relation <b>" + relation.getTitle() + relation.getRelEntityName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
}
if(field == null) {
warningList.add("<span style=\"color: red;\">[RelationFieldNotFound]</span> The field <b>" + keyMap.getFieldName() + "</b> was specified in the keymaps but is not found for relation <b>" + relation.getTitle() + relation.getRelEntityName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
}
if(field != null && rfield != null) {
//this was the old check, now more constrained to keep things cleaner: if(!field.getType().equals(rfield.getType()) && !field.getType().startsWith(rfield.getType()) && !rfield.getType().startsWith(field.getType())) {
if(!field.getType().equals(rfield.getType()) && !field.getType().equals(rfield.getType() + "-ne") && !rfield.getType().equals(field.getType() + "-ne")) {
warningList.add("<span style=\"color: red;\">[RelationFieldTypesDifferent]</span> The field type (" + field.getType() + ") of <b>" + field.getName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is not the same as field type (" + rfield.getType() + ") of <b>" + rfield.getName() + "</b> of entity <A href=\"#" + relation.getRelEntityName() + "\">" + relation.getRelEntityName() + "</A> for relation <b>" + relation.getTitle() + relation.getRelEntityName() + "</b>.");
}
}
}
}
%>
<tr bgcolor="#FEEEEE">
<td>
<div align="left" class='relationtext'>
<b><%=relation.getTitle()%></b><A href='#<%=relation.getRelEntityName()%>' class='rlinktext'><%=relation.getRelEntityName()%></A>
</div>
<%if (relation.getFkName().length() > 0) {%><div class='relationtext'>fk-name: <%=relation.getFkName()%></div><%}%>
</td>
<td width="60%" colspan='4'><div align="left" class='relationtext'>
<%=relation.getType()%>:<%if(relation.getType().length()==3){%> <%}%>
<%for (int km = 0; km < relation.getKeyMapsSize(); km++){ ModelKeyMap keyMap = relation.getKeyMap(km);%>
<br> <%=km+1%>)
<%if(keyMap.getFieldName().equals(keyMap.getRelFieldName())){%><%=keyMap.getFieldName()%>
<%}else{%><%=keyMap.getFieldName()%> : <%=keyMap.getRelFieldName()%><%}%>
<%}%>
</div></td>
</tr>
<%
}
}
%>
<tr bgcolor="#CCCCCC">
<td colspan="5"> </td>
</tr>
</table>
<br>
<%
numberShowed++;
}
}
}
%>
<br><br>
<p align="center">Displayed: <%= numberShowed %></p>
</div>
<%if(checkWarnings) {%>
<A name='WARNINGS'>WARNINGS:</A>
<OL>
<%Iterator warningIter = warningList.iterator();%>
<%while (warningIter.hasNext()) {%>
<li><%=warningIter.next()%></li>
<%}%>
</OL>
<%}%>
</body>
</html>
<%}else{%>
<html>
<head>
<title>Entity Editor</title>
</head>
<body>
<H3>Entity Editor</H3>
ERROR: You do not have permission to use this page (ENTITY_MAINT needed)
</body>
</html>
<%}%>
<%!
public TreeSet reservedWords = new TreeSet();
public static final String[] rwArray = {
"ABORT", "ABS", "ABSOLUTE", "ACCEPT", "ACCES", "ACS", "ACTION", "ACTIVATE",
"ADD", "ADDFORM", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", "ALLOCATE",
"ALTER", "ANALYZE", "AND", "ANDFILENAME", "ANY", "ANYFINISH", "APPEND",
"ARCHIVE", "ARE", "ARRAY", "AS", "ASC", "ASCENDING", "ASCII", "ASSERT",
"ASSERTION", "ASSIGN", "AT", "ATTRIBUTE", "ATTRIBUTES", "AUDIT", "AUTHID",
"AUTHORIZATION", "AUTONEXT", "AUTO_INCREMENT", "AVERAGE", "AVG", "AVGU",
"AVG_ROW_LENGTH",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -