示例#1
0
 private boolean[] loadGroupMask(String groupName, boolean[] defaultGroup) {
   List<String> fieldNames = metadata.getLoadGroup(groupName);
   boolean[] group = new boolean[tableFields.length];
   if (defaultGroup != null) System.arraycopy(defaultGroup, 0, group, 0, group.length);
   for (String fieldName : fieldNames) {
     JDBCFieldBridge field = (JDBCFieldBridge) getFieldByName(fieldName);
     if (field == null) throw MESSAGES.fieldNotFound(fieldName, getEntityName());
     if (field instanceof JDBCCMRFieldBridge) {
       JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge) field;
       if (cmrField.hasForeignKey()) {
         JDBCCMPFieldBridge[] fkFields = (JDBCCMPFieldBridge[]) cmrField.getForeignKeyFields();
         for (int i = 0; i < fkFields.length; ++i) {
           group[fkFields[i].getTableIndex()] = true;
         }
       } else {
         throw MESSAGES.onlyCmrFieldsWithFkInLoadGroup(fieldName);
       }
     } else {
       group[((JDBCCMPFieldBridge) field).getTableIndex()] = true;
     }
   }
   return group;
 }