blob: 4411668aa158027a801d72cf8786fe7f7868a828 [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.models.jpa.xml.advanced.compositepk;
import org.eclipse.persistence.tools.schemaframework.*;
public class CompositePKTableCreator extends TableCreator {
public CompositePKTableCreator() {
setName("EJB3CompositePKProject");
addTableDefinition(buildADMIN_CONTRACTTable());
addTableDefinition(buildADMINTable());
addTableDefinition(buildSCIENTISTTable());
addTableDefinition(buildDEPARTMENTTable());
addTableDefinition(buildDEPT_ADMINTable());
addTableDefinition(buildCUBICLETable());
}
public static TableDefinition buildADMINTable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_XML_ADMIN");
FieldDefinition field = new FieldDefinition();
field.setName("EMPLOYEE_EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setUnique(false);
field.setIsIdentity(true);
table.addField(field);
FieldDefinition field1 = new FieldDefinition();
field1.setName("CONTRACT_COMPANY");
field1.setTypeName("VARCHAR");
field1.setSize(40);
field1.setShouldAllowNull(true);
field1.setIsPrimaryKey(false);
field1.setUnique(false);
field1.setIsIdentity(false);
table.addField(field1);
FieldDefinition fieldVERSION = new FieldDefinition();
fieldVERSION.setName("VERSION");
fieldVERSION.setTypeName("NUMERIC");
fieldVERSION.setSize(15);
fieldVERSION.setShouldAllowNull(true);
fieldVERSION.setIsPrimaryKey(false);
fieldVERSION.setUnique(false);
fieldVERSION.setIsIdentity(false);
table.addField(fieldVERSION);
return table;
}
public static TableDefinition buildADMIN_CONTRACTTable(){
TableDefinition table = new TableDefinition();
table.setName("CMP3_XML_ADMIN_CONTRACT");
FieldDefinition field = new FieldDefinition();
field.setName("EMPLOYEE_EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setUnique(false);
field.setIsIdentity(true);
table.addField(field);
FieldDefinition field4 = new FieldDefinition();
field4.setName("END_DATE");
field4.setTypeName("DATE");
field4.setSize(23);
field4.setShouldAllowNull(true);
field4.setIsPrimaryKey(false);
field4.setUnique(false);
field4.setIsIdentity(false);
table.addField(field4);
return table;
}
public static TableDefinition buildSCIENTISTTable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_XML_SCIENTIST");
FieldDefinition ID_NUMBER_field = new FieldDefinition();
ID_NUMBER_field.setName("ID_NUMBER");
ID_NUMBER_field.setTypeName("NUMERIC");
ID_NUMBER_field.setSize(15);
ID_NUMBER_field.setShouldAllowNull(false);
ID_NUMBER_field.setIsPrimaryKey(true);
ID_NUMBER_field.setUnique(false);
ID_NUMBER_field.setIsIdentity(true);
table.addField(ID_NUMBER_field);
FieldDefinition F_NAME_field = new FieldDefinition();
F_NAME_field.setName("F_NAME");
F_NAME_field.setTypeName("VARCHAR");
F_NAME_field.setSize(40);
F_NAME_field.setShouldAllowNull(false);
F_NAME_field.setIsPrimaryKey(true);
F_NAME_field.setUnique(false);
F_NAME_field.setIsIdentity(true);
table.addField(F_NAME_field);
FieldDefinition L_NAME_Field = new FieldDefinition();
L_NAME_Field.setName("L_NAME");
L_NAME_Field.setTypeName("VARCHAR");
L_NAME_Field.setSize(40);
L_NAME_Field.setShouldAllowNull(false);
L_NAME_Field.setIsPrimaryKey(true);
L_NAME_Field.setUnique(false);
L_NAME_Field.setIsIdentity(true);
table.addField(L_NAME_Field);
FieldDefinition CUBE_ID_field = new FieldDefinition();
CUBE_ID_field.setName("CUBE_ID");
CUBE_ID_field.setTypeName("NUMERIC");
CUBE_ID_field.setSize(15);
CUBE_ID_field.setShouldAllowNull(true);
CUBE_ID_field.setIsPrimaryKey(false);
CUBE_ID_field.setUnique(false);
CUBE_ID_field.setIsIdentity(false);
table.addField(CUBE_ID_field);
FieldDefinition CUBE_CODE_field = new FieldDefinition();
CUBE_CODE_field.setName("CUBE_CODE");
CUBE_CODE_field.setTypeName("VARCHAR");
CUBE_CODE_field.setSize(1);
CUBE_CODE_field.setShouldAllowNull(true);
CUBE_CODE_field.setIsPrimaryKey(false);
CUBE_CODE_field.setUnique(false);
CUBE_CODE_field.setIsIdentity(false);
table.addField(CUBE_CODE_field);
FieldDefinition DEPT_NAME_field = new FieldDefinition();
DEPT_NAME_field.setName("DEPT_NAME");
DEPT_NAME_field.setTypeName("VARCHAR");
DEPT_NAME_field.setSize(40);
DEPT_NAME_field.setShouldAllowNull(true);
DEPT_NAME_field.setIsPrimaryKey(false);
DEPT_NAME_field.setUnique(false);
DEPT_NAME_field.setIsIdentity(false);
table.addField(DEPT_NAME_field);
FieldDefinition DEPT_ROLE_field = new FieldDefinition();
DEPT_ROLE_field.setName("DEPT_ROLE");
DEPT_ROLE_field.setTypeName("VARCHAR");
DEPT_ROLE_field.setSize(40);
DEPT_ROLE_field.setShouldAllowNull(true);
DEPT_ROLE_field.setIsPrimaryKey(false);
DEPT_ROLE_field.setUnique(false);
DEPT_ROLE_field.setIsIdentity(false);
table.addField(DEPT_ROLE_field);
FieldDefinition DEPT_LOCATION_field = new FieldDefinition();
DEPT_LOCATION_field.setName("DEPT_LOCATION");
DEPT_LOCATION_field.setTypeName("VARCHAR");
DEPT_LOCATION_field.setSize(40);
DEPT_LOCATION_field.setShouldAllowNull(true);
DEPT_LOCATION_field.setIsPrimaryKey(false);
DEPT_LOCATION_field.setUnique(false);
DEPT_LOCATION_field.setIsIdentity(false);
table.addField(DEPT_LOCATION_field);
FieldDefinition fieldDTYPE = new FieldDefinition();
fieldDTYPE.setName("DTYPE");
fieldDTYPE.setTypeName("VARCHAR2");
fieldDTYPE.setSize(20);
fieldDTYPE.setSubSize(0);
fieldDTYPE.setIsPrimaryKey(false);
fieldDTYPE.setIsIdentity(false);
fieldDTYPE.setUnique(false);
fieldDTYPE.setShouldAllowNull(true);
table.addField(fieldDTYPE);
ForeignKeyConstraint fkConstraint1 = new ForeignKeyConstraint();
fkConstraint1.setName("XML_SC_CUB");
fkConstraint1.addSourceField("CUBE_ID");
fkConstraint1.addSourceField("CUBE_CODE");
fkConstraint1.setTargetTable("CMP3_XML_CUBICLE");
fkConstraint1.addTargetField("ID");
fkConstraint1.addTargetField("CODE");
table.addForeignKeyConstraint(fkConstraint1);
ForeignKeyConstraint fkConstraint2 = new ForeignKeyConstraint();
fkConstraint2.setName("CMP3_XML_SC_DEPT");
fkConstraint2.addSourceField("DEPT_NAME");
fkConstraint2.addSourceField("DEPT_ROLE");
fkConstraint2.addSourceField("DEPT_LOCATION");
fkConstraint2.setTargetTable("CMP3_XML_DEPARTMENT");
fkConstraint2.addTargetField("NAME");
fkConstraint2.addTargetField("DEPT_ROLE");
fkConstraint2.addTargetField("LOCATION");
table.addForeignKeyConstraint(fkConstraint2);
return table;
}
public static TableDefinition buildDEPT_ADMINTable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_XML_DEPT_ADMIN");
// SECTION: FIELD
FieldDefinition fieldName = new FieldDefinition();
fieldName.setName("DEPT_NAME");
fieldName.setTypeName("VARCHAR");
fieldName.setSize(40);
fieldName.setShouldAllowNull(false);
fieldName.setIsPrimaryKey(true);
fieldName.setUnique(false);
fieldName.setIsIdentity(false);
//fieldName.setForeignKeyFieldName("CMP3_XML_DEPARTMENT.NAME");
table.addField(fieldName);
FieldDefinition ROLE_field = new FieldDefinition();
ROLE_field.setName("DEPT_ROLE");
ROLE_field.setTypeName("VARCHAR");
ROLE_field.setSize(40);
ROLE_field.setShouldAllowNull(false);
ROLE_field.setIsPrimaryKey(true);
ROLE_field.setUnique(false);
ROLE_field.setIsIdentity(false);
//ROLE_field.setForeignKeyFieldName("CMP3_XML_DEPARTMENT.ROLE");
table.addField(ROLE_field);
FieldDefinition LOCATION_field = new FieldDefinition();
LOCATION_field.setName("DEPT_LOCATION");
LOCATION_field.setTypeName("VARCHAR");
LOCATION_field.setSize(40);
LOCATION_field.setShouldAllowNull(false);
LOCATION_field.setIsPrimaryKey(true);
LOCATION_field.setUnique(false);
LOCATION_field.setIsIdentity(false);
//LOCATION_field.setForeignKeyFieldName("CMP3_XML_DEPARTMENT.LOCATION");
table.addField(LOCATION_field);
// SECTION: FIELD
FieldDefinition fieldEMP = new FieldDefinition();
fieldEMP.setName("ADMIN_EMPLOYEE_EMP_ID");
fieldEMP.setTypeName("NUMERIC");
fieldEMP.setSize(15);
fieldEMP.setShouldAllowNull(true);
fieldEMP.setIsPrimaryKey(true);
fieldEMP.setUnique(false);
fieldEMP.setIsIdentity(false);
//fieldEMP.setForeignKeyFieldName("CMP3_XML_EMPLOYEE.EMP_ID");
table.addField(fieldEMP);
return table;
}
public static TableDefinition buildDEPARTMENTTable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_XML_DEPARTMENT");
FieldDefinition NAME_field = new FieldDefinition();
NAME_field.setName("NAME");
NAME_field.setTypeName("VARCHAR");
NAME_field.setSize(40);
NAME_field.setShouldAllowNull(false);
NAME_field.setIsPrimaryKey(true);
NAME_field.setUnique(false);
NAME_field.setIsIdentity(true);
table.addField(NAME_field);
FieldDefinition ROLE_field = new FieldDefinition();
ROLE_field.setName("DEPT_ROLE");
ROLE_field.setTypeName("VARCHAR");
ROLE_field.setSize(40);
ROLE_field.setShouldAllowNull(false);
ROLE_field.setIsPrimaryKey(true);
ROLE_field.setUnique(false);
ROLE_field.setIsIdentity(true);
table.addField(ROLE_field);
FieldDefinition LOCATION_field = new FieldDefinition();
LOCATION_field.setName("LOCATION");
LOCATION_field.setTypeName("VARCHAR");
LOCATION_field.setSize(40);
LOCATION_field.setShouldAllowNull(false);
LOCATION_field.setIsPrimaryKey(true);
LOCATION_field.setUnique(false);
LOCATION_field.setIsIdentity(true);
table.addField(LOCATION_field);
return table;
}
public static TableDefinition buildCUBICLETable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_XML_CUBICLE");
FieldDefinition ID_field = new FieldDefinition();
ID_field.setName("ID");
ID_field.setTypeName("NUMERIC");
ID_field.setSize(15);
ID_field.setShouldAllowNull(false);
ID_field.setIsPrimaryKey(true);
ID_field.setUnique(false);
ID_field.setIsIdentity(true);
table.addField(ID_field);
FieldDefinition CODE_field = new FieldDefinition();
CODE_field.setName("CODE");
CODE_field.setTypeName("VARCHAR");
CODE_field.setSize(1);
CODE_field.setShouldAllowNull(false);
CODE_field.setIsPrimaryKey(true);
CODE_field.setUnique(false);
CODE_field.setIsIdentity(true);
table.addField(CODE_field);
return table;
}
}