⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entityref_main.jsp

📁 国外的一套开源CRM
💻 JSP
📖 第 1 页 / 共 3 页
字号:
        }
      %>
    <%}%>
    </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){%>&nbsp;<%}%>
        <%for (int km = 0; km < relation.getKeyMapsSize(); km++){ ModelKeyMap keyMap = relation.getKeyMap(km);%>
          <br>&nbsp;&nbsp;<%=km+1%>)&nbsp;
          <%if(keyMap.getFieldName().equals(keyMap.getRelFieldName())){%><%=keyMap.getFieldName()%>
          <%}else{%><%=keyMap.getFieldName()%> : <%=keyMap.getRelFieldName()%><%}%>
        <%}%>
      </div></td>
    </tr>				
<%
				}
			}
%>
    <tr bgcolor="#CCCCCC">
	  <td colspan="5">&nbsp;</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 + -