/** * PUBLIC: * Add the field to the table. */ public void addField(FieldDefinition field) { getFields().add(field); }
/** * PUBLIC: * Add the field to the table. */ public void addField(FieldDefinition field) { this.getFields().addElement(field); }
/** * PUBLIC: * Add the field to the table. */ public void addField(FieldDefinition field) { getFields().add(field); }
/** * PUBLIC: * Return the field the corresponds to the name. */ public FieldDefinition getField(String fieldName) { for (FieldDefinition field : getFields()) { if (field.getName().equals(fieldName)) { return field; } } return null; }
/** * PUBLIC: * Return the field the corresponds to the name. */ public FieldDefinition getField(String fieldName) { for (FieldDefinition field : getFields()) { if (field.getName().equals(fieldName)) { return field; } } return null; }
/** * PUBLIC: */ public Vector<String> getPrimaryKeyFieldNames() { Vector<String> keyNames = new Vector<String>(); for (Enumeration fieldEnum = getFields().elements(); fieldEnum.hasMoreElements();) { FieldDefinition field = (FieldDefinition)fieldEnum.nextElement(); if (field.isPrimaryKey()) { keyNames.addElement(field.getName()); } } return keyNames; }
/** * PUBLIC: */ public List<String> getPrimaryKeyFieldNames() { List<String> keyNames = new ArrayList<String>(); for (FieldDefinition field : getFields()) { if (field.isPrimaryKey()) { keyNames.add(field.getName()); } } return keyNames; }
/** * PUBLIC: */ public List<String> getPrimaryKeyFieldNames() { List<String> keyNames = new ArrayList<String>(); for (FieldDefinition field : getFields()) { if (field.isPrimaryKey()) { keyNames.add(field.getName()); } } return keyNames; }
/** * INTERNAL: * Build the foreign key constraints. */ protected void buildFieldTypes(AbstractSession session) { FieldDefinition field = null; // The ForeignKeyConstraint object is the newer way of doing things. // We support FieldDefinition.getForeignKeyFieldName() due to backwards compatibility // by converting it. To allow mixing both ways, we just add converted one to foreignKeys list. for (Enumeration enumtr = getFields().elements(); enumtr.hasMoreElements();) { field = (FieldDefinition)enumtr.nextElement(); if (field.getForeignKeyFieldName() != null) { addForeignKeyConstraint(buildForeignKeyConstraint(field, session.getPlatform())); } } }
/** * Build and add a field definition object to relation table */ protected void setFieldToRelationTable(DatabaseField dbField, TableDefinition table) { FieldDefinition fieldDef = getFieldDefFromDBField(dbField); if (!table.getFields().contains(fieldDef)) { //only add the field once, to avoid add twice if m:m is bi-directional. table.addField(getFieldDefFromDBField(dbField)); fieldDef.setIsPrimaryKey(true); // make this a PK as we will be creating constrains later } }
/** * Build and add a field definition object to relation table */ private void setFieldToRelationTable(DatabaseField dbField, TableDefinition tblDef) { FieldDefinition fieldDef = getFieldDefFromDBField(dbField, false); if (!tblDef.getFields().contains(fieldDef)) { //only add the field once, to avoid add twice if m:m is bi-directional. tblDef.addField(getFieldDefFromDBField(dbField, false)); fieldDef.setIsPrimaryKey(true); // make this a PK as we will be creating constrains later } }
/** * Build and add a field definition object to relation table */ protected void setFieldToRelationTable(DatabaseField dbField, TableDefinition table) { FieldDefinition fieldDef = getFieldDefFromDBField(dbField); if (!table.getFields().contains(fieldDef)) { //only add the field once, to avoid add twice if m:m is bi-directional. table.addField(getFieldDefFromDBField(dbField)); fieldDef.setIsPrimaryKey(true); // make this a PK as we will be creating constrains later } }
/** * PUBLIC: * Performs a deep copy of this table definition. */ @Override public Object clone() { TableDefinition clone = (TableDefinition)super.clone(); if (fields != null) { clone.setFields(new ArrayList<FieldDefinition>(fields.size())); for (FieldDefinition fieldDef : getFields()) { clone.addField((FieldDefinition)fieldDef.clone()); } } if (foreignKeyMap != null) { clone.setForeignKeyMap(new HashMap(this.foreignKeyMap)); } if (uniqueKeys != null) { clone.setUniqueKeys(new ArrayList(this.uniqueKeys)); } return clone; }
/** * The ContainerPolicy may contain some additional fields that should be added to the table * * @see MappedKeyMapContainerPolicy */ protected void addFieldsForMappedKeyMapContainerPolicy(ContainerPolicy cp, TableDefinition table){ if (cp.isMappedKeyMapPolicy()){ List<DatabaseField> keyFields = cp.getIdentityFieldsForMapKey(); Iterator<DatabaseField> i = keyFields.iterator(); while (i.hasNext()){ DatabaseField foreignKey = i.next(); FieldDefinition fieldDef = getFieldDefFromDBField(foreignKey); if (!table.getFields().contains(fieldDef)) { table.addField(fieldDef); } } Map<DatabaseField, DatabaseField> foreignKeys = ((MappedKeyMapContainerPolicy)cp).getForeignKeyFieldsForMapKey(); if (foreignKeys != null){ addForeignMappingFkConstraint(foreignKeys, false); } } }
/** * PUBLIC: * Performs a deep copy of this table definition. */ public Object clone() { TableDefinition clone = (TableDefinition)super.clone(); if (fields != null) { clone.setFields(new ArrayList<FieldDefinition>(fields.size())); for (FieldDefinition fieldDef : getFields()) { clone.addField((FieldDefinition)fieldDef.clone()); } } if (foreignKeyMap != null) { clone.setForeignKeyMap(new HashMap(this.foreignKeyMap)); } if (uniqueKeys != null) { clone.setUniqueKeys(new ArrayList(this.uniqueKeys)); } return clone; }
/** * INTERNAL: * Build the foreign key constraints. */ protected void buildFieldTypes(AbstractSession session) { // The ForeignKeyConstraint object is the newer way of doing things. // We support FieldDefinition.getForeignKeyFieldName() due to backwards compatibility // by converting it. To allow mixing both ways, we just add converted one to foreignKeys list. for (FieldDefinition field : getFields()) { if (field.getForeignKeyFieldName() != null) { addForeignKeyConstraint(buildForeignKeyConstraint(field, session.getPlatform())); } } }
/** * INTERNAL: * Build the foreign key constraints. */ protected void buildFieldTypes(AbstractSession session) { // The ForeignKeyConstraint object is the newer way of doing things. // We support FieldDefinition.getForeignKeyFieldName() due to backwards compatibility // by converting it. To allow mixing both ways, we just add converted one to foreignKeys list. for (FieldDefinition field : getFields()) { if (field.getForeignKeyFieldName() != null) { addForeignKeyConstraint(buildForeignKeyConstraint(field, session.getPlatform())); } } }
protected void addForeignKeyFieldToSourceTargetTable(OneToManyMapping mapping) { if (mapping.getDescriptor().hasTablePerClassPolicy()) { return; } addForeignMappingFkConstraint(mapping.getTargetForeignKeysToSourceKeys(), mapping.isCascadeOnDeleteSetOnDatabase()); if (mapping.getListOrderField() != null) { FieldDefinition fieldDef = getFieldDefFromDBField(mapping.getListOrderField()); TableDefinition table = getTableDefFromDBTable(mapping.getListOrderField().getTable()); if (!table.getFields().contains(fieldDef)) { table.addField(fieldDef); } } }
protected void addForeignKeyFieldToSourceTargetTable(OneToManyMapping mapping) { if (mapping.getDescriptor().hasTablePerClassPolicy()) { return; } addForeignMappingFkConstraint(mapping.getTargetForeignKeysToSourceKeys(), mapping.isCascadeOnDeleteSetOnDatabase()); if (mapping.getListOrderField() != null) { FieldDefinition fieldDef = getFieldDefFromDBField(mapping.getListOrderField()); TableDefinition table = getTableDefFromDBTable(mapping.getListOrderField().getTable()); if (!table.getFields().contains(fieldDef)) { table.addField(fieldDef); } } }
protected NonreflectiveMethodDefinition buildTableMethod(TableDefinition table) { NonreflectiveMethodDefinition method = new NonreflectiveMethodDefinition(); method.setName("build" + table.getName() + "Table"); method.setReturnType("TableDefinition"); // Table method.addLine("TableDefinition table = new TableDefinition();"); method.addLine("table.setName(\"" + table.getName() + "\");"); // Fields for (FieldDefinition field : table.getFields()) { method.addLine(""); addFieldLines(field, method); } // Constraints for (ForeignKeyConstraint foreignKey : table.getForeignKeys()) { method.addLine(""); addForeignKeyLines(foreignKey, method); } method.addLine(""); method.addLine("return table;"); return method; }