| /* |
| * Copyright (c) 2011, 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: |
| // tware - initial implementation as part of extensibility feature |
| package org.eclipse.persistence.testing.models.jpa.extensibility; |
| |
| import org.eclipse.persistence.testing.framework.TogglingFastTableCreator; |
| import org.eclipse.persistence.testing.models.jpa.relationships.RelationshipsTableManager; |
| import org.eclipse.persistence.tools.schemaframework.FieldDefinition; |
| import org.eclipse.persistence.tools.schemaframework.TableCreator; |
| import org.eclipse.persistence.tools.schemaframework.TableDefinition; |
| |
| public class ExtensibilityTableCreator extends TogglingFastTableCreator { |
| |
| public static TableCreator tableCreator; |
| |
| public ExtensibilityTableCreator() { |
| setName("Extensibility"); |
| addTableDefinition(buildEXTENS_EMPTable()); |
| addTableDefinition(buildEXTENS_PHONETable()); |
| addTableDefinition(buildEXTENS_ADDRTable()); |
| addTableDefinition(buildEXTENS_JOIN_TABLETable()); |
| } |
| |
| public static TableCreator getCreator(){ |
| if (RelationshipsTableManager.tableCreator == null){ |
| ExtensibilityTableCreator.tableCreator = new ExtensibilityTableCreator(); |
| } |
| return ExtensibilityTableCreator.tableCreator; |
| } |
| |
| public static TableDefinition buildEXTENS_EMPTable() { |
| TableDefinition table = new TableDefinition(); |
| table.setName("EXTENS_EMP"); |
| |
| FieldDefinition fieldID = new FieldDefinition(); |
| fieldID.setName("ID"); |
| fieldID.setTypeName("NUMERIC"); |
| fieldID.setSize(15); |
| fieldID.setShouldAllowNull(false); |
| fieldID.setIsPrimaryKey(true); |
| fieldID.setUnique(false); |
| fieldID.setIsIdentity(false); |
| table.addField(fieldID); |
| |
| FieldDefinition fieldFIRST_NAME = new FieldDefinition(); |
| fieldFIRST_NAME.setName("FIRSTNAME"); |
| fieldFIRST_NAME.setTypeName("VARCHAR2"); |
| fieldFIRST_NAME.setSize(80); |
| fieldFIRST_NAME.setSubSize(0); |
| fieldFIRST_NAME.setIsPrimaryKey(false); |
| fieldFIRST_NAME.setIsIdentity(false); |
| fieldFIRST_NAME.setUnique(false); |
| fieldFIRST_NAME.setShouldAllowNull(true); |
| table.addField(fieldFIRST_NAME); |
| |
| FieldDefinition fieldLAST_NAME = new FieldDefinition(); |
| fieldLAST_NAME.setName("LASTNAME"); |
| fieldLAST_NAME.setTypeName("VARCHAR2"); |
| fieldLAST_NAME.setSize(80); |
| fieldLAST_NAME.setSubSize(0); |
| fieldLAST_NAME.setIsPrimaryKey(false); |
| fieldLAST_NAME.setIsIdentity(false); |
| fieldLAST_NAME.setUnique(false); |
| fieldLAST_NAME.setShouldAllowNull(true); |
| table.addField(fieldLAST_NAME); |
| |
| FieldDefinition fieldFLEX1 = new FieldDefinition(); |
| fieldFLEX1.setName("FLEX1"); |
| fieldFLEX1.setTypeName("VARCHAR2"); |
| fieldFLEX1.setSize(80); |
| fieldFLEX1.setSubSize(0); |
| fieldFLEX1.setIsPrimaryKey(false); |
| fieldFLEX1.setIsIdentity(false); |
| fieldFLEX1.setUnique(false); |
| fieldFLEX1.setShouldAllowNull(true); |
| table.addField(fieldFLEX1); |
| |
| FieldDefinition fieldFLEX2 = new FieldDefinition(); |
| fieldFLEX2.setName("FLEX2"); |
| fieldFLEX2.setTypeName("VARCHAR2"); |
| fieldFLEX2.setSize(80); |
| fieldFLEX2.setSubSize(0); |
| fieldFLEX2.setIsPrimaryKey(false); |
| fieldFLEX2.setIsIdentity(false); |
| fieldFLEX2.setUnique(false); |
| fieldFLEX2.setShouldAllowNull(true); |
| table.addField(fieldFLEX2); |
| |
| FieldDefinition fieldFLEX3 = new FieldDefinition(); |
| fieldFLEX3.setName("FLEX3"); |
| fieldFLEX3.setTypeName("VARCHAR2"); |
| fieldFLEX3.setSize(80); |
| fieldFLEX3.setSubSize(0); |
| fieldFLEX3.setIsPrimaryKey(false); |
| fieldFLEX3.setIsIdentity(false); |
| fieldFLEX3.setUnique(false); |
| fieldFLEX3.setShouldAllowNull(true); |
| table.addField(fieldFLEX3); |
| |
| FieldDefinition fieldADDRESS_ID = new FieldDefinition(); |
| fieldADDRESS_ID.setName("ADDRESS_ID"); |
| fieldADDRESS_ID.setTypeName("NUMERIC"); |
| fieldADDRESS_ID.setSize(15); |
| fieldADDRESS_ID.setShouldAllowNull(true); |
| fieldADDRESS_ID.setIsPrimaryKey(false); |
| fieldADDRESS_ID.setUnique(false); |
| fieldADDRESS_ID.setIsIdentity(false); |
| fieldADDRESS_ID.setForeignKeyFieldName("EXTENS_ADDR.ID"); |
| table.addField(fieldADDRESS_ID); |
| |
| 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 buildEXTENS_ADDRTable() { |
| TableDefinition table = new TableDefinition(); |
| table.setName("EXTENS_ADDR"); |
| |
| FieldDefinition fieldID = new FieldDefinition(); |
| fieldID.setName("ID"); |
| fieldID.setTypeName("NUMERIC"); |
| fieldID.setSize(15); |
| fieldID.setShouldAllowNull(false); |
| fieldID.setIsPrimaryKey(true); |
| fieldID.setUnique(false); |
| fieldID.setIsIdentity(false); |
| table.addField(fieldID); |
| |
| FieldDefinition fieldSTREET = new FieldDefinition(); |
| fieldSTREET.setName("STREET"); |
| fieldSTREET.setTypeName("VARCHAR2"); |
| fieldSTREET.setSize(80); |
| fieldSTREET.setSubSize(0); |
| fieldSTREET.setIsPrimaryKey(false); |
| fieldSTREET.setIsIdentity(false); |
| fieldSTREET.setUnique(false); |
| fieldSTREET.setShouldAllowNull(true); |
| table.addField(fieldSTREET); |
| |
| FieldDefinition fieldCOUNTRY = new FieldDefinition(); |
| fieldCOUNTRY.setName("COUNTRY"); |
| fieldCOUNTRY.setTypeName("VARCHAR2"); |
| fieldCOUNTRY.setSize(80); |
| fieldCOUNTRY.setSubSize(0); |
| fieldCOUNTRY.setIsPrimaryKey(false); |
| fieldCOUNTRY.setIsIdentity(false); |
| fieldCOUNTRY.setUnique(false); |
| fieldCOUNTRY.setShouldAllowNull(true); |
| table.addField(fieldCOUNTRY); |
| |
| FieldDefinition fieldPOSTALCODE = new FieldDefinition(); |
| fieldPOSTALCODE.setName("POSTALCODE"); |
| fieldPOSTALCODE.setTypeName("VARCHAR2"); |
| fieldPOSTALCODE.setSize(80); |
| fieldPOSTALCODE.setSubSize(0); |
| fieldPOSTALCODE.setIsPrimaryKey(false); |
| fieldPOSTALCODE.setIsIdentity(false); |
| fieldPOSTALCODE.setUnique(false); |
| fieldPOSTALCODE.setShouldAllowNull(true); |
| table.addField(fieldPOSTALCODE); |
| |
| FieldDefinition fieldCITY = new FieldDefinition(); |
| fieldCITY.setName("CITY"); |
| fieldCITY.setTypeName("VARCHAR2"); |
| fieldCITY.setSize(80); |
| fieldCITY.setSubSize(0); |
| fieldCITY.setIsPrimaryKey(false); |
| fieldCITY.setIsIdentity(false); |
| fieldCITY.setUnique(false); |
| fieldCITY.setShouldAllowNull(true); |
| table.addField(fieldCITY); |
| |
| FieldDefinition fieldFLEX1 = new FieldDefinition(); |
| fieldFLEX1.setName("FLEX1"); |
| fieldFLEX1.setTypeName("VARCHAR2"); |
| fieldFLEX1.setSize(80); |
| fieldFLEX1.setSubSize(0); |
| fieldFLEX1.setIsPrimaryKey(false); |
| fieldFLEX1.setIsIdentity(false); |
| fieldFLEX1.setUnique(false); |
| fieldFLEX1.setShouldAllowNull(true); |
| table.addField(fieldFLEX1); |
| |
| FieldDefinition fieldFLEX2 = new FieldDefinition(); |
| fieldFLEX2.setName("FLEX2"); |
| fieldFLEX2.setTypeName("VARCHAR2"); |
| fieldFLEX2.setSize(80); |
| fieldFLEX2.setSubSize(0); |
| fieldFLEX2.setIsPrimaryKey(false); |
| fieldFLEX2.setIsIdentity(false); |
| fieldFLEX2.setUnique(false); |
| fieldFLEX2.setShouldAllowNull(true); |
| table.addField(fieldFLEX2); |
| |
| FieldDefinition fieldFLEX3 = new FieldDefinition(); |
| fieldFLEX3.setName("FLEX3"); |
| fieldFLEX3.setTypeName("VARCHAR2"); |
| fieldFLEX3.setSize(80); |
| fieldFLEX3.setSubSize(0); |
| fieldFLEX3.setIsPrimaryKey(false); |
| fieldFLEX3.setIsIdentity(false); |
| fieldFLEX3.setUnique(false); |
| fieldFLEX3.setShouldAllowNull(true); |
| table.addField(fieldFLEX3); |
| |
| 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 buildEXTENS_PHONETable() { |
| TableDefinition table = new TableDefinition(); |
| table.setName("EXTENS_PHONE"); |
| |
| FieldDefinition fieldID = new FieldDefinition(); |
| fieldID.setName("ID"); |
| fieldID.setTypeName("NUMERIC"); |
| fieldID.setSize(15); |
| fieldID.setShouldAllowNull(false); |
| fieldID.setIsPrimaryKey(true); |
| fieldID.setUnique(false); |
| fieldID.setIsIdentity(false); |
| table.addField(fieldID); |
| |
| FieldDefinition fieldSTREET = new FieldDefinition(); |
| fieldSTREET.setName("TYPE"); |
| fieldSTREET.setTypeName("VARCHAR2"); |
| fieldSTREET.setSize(80); |
| fieldSTREET.setSubSize(0); |
| fieldSTREET.setIsPrimaryKey(false); |
| fieldSTREET.setIsIdentity(false); |
| fieldSTREET.setUnique(false); |
| fieldSTREET.setShouldAllowNull(true); |
| table.addField(fieldSTREET); |
| |
| FieldDefinition fieldCOUNTRY = new FieldDefinition(); |
| fieldCOUNTRY.setName("NUMB"); |
| fieldCOUNTRY.setTypeName("VARCHAR2"); |
| fieldCOUNTRY.setSize(10); |
| fieldCOUNTRY.setSubSize(0); |
| fieldCOUNTRY.setIsPrimaryKey(false); |
| fieldCOUNTRY.setIsIdentity(false); |
| fieldCOUNTRY.setUnique(false); |
| fieldCOUNTRY.setShouldAllowNull(true); |
| table.addField(fieldCOUNTRY); |
| |
| FieldDefinition fieldPOSTALCODE = new FieldDefinition(); |
| fieldPOSTALCODE.setName("AREA_CODE"); |
| fieldPOSTALCODE.setTypeName("VARCHAR2"); |
| fieldPOSTALCODE.setSize(10); |
| fieldPOSTALCODE.setSubSize(0); |
| fieldPOSTALCODE.setIsPrimaryKey(false); |
| fieldPOSTALCODE.setIsIdentity(false); |
| fieldPOSTALCODE.setUnique(false); |
| fieldPOSTALCODE.setShouldAllowNull(true); |
| table.addField(fieldPOSTALCODE); |
| |
| FieldDefinition fieldFLEX1 = new FieldDefinition(); |
| fieldFLEX1.setName("FLEX1"); |
| fieldFLEX1.setTypeName("VARCHAR2"); |
| fieldFLEX1.setSize(80); |
| fieldFLEX1.setSubSize(0); |
| fieldFLEX1.setIsPrimaryKey(false); |
| fieldFLEX1.setIsIdentity(false); |
| fieldFLEX1.setUnique(false); |
| fieldFLEX1.setShouldAllowNull(true); |
| table.addField(fieldFLEX1); |
| |
| FieldDefinition fieldFLEX2 = new FieldDefinition(); |
| fieldFLEX2.setName("FLEX2"); |
| fieldFLEX2.setTypeName("VARCHAR2"); |
| fieldFLEX2.setSize(80); |
| fieldFLEX2.setSubSize(0); |
| fieldFLEX2.setIsPrimaryKey(false); |
| fieldFLEX2.setIsIdentity(false); |
| fieldFLEX2.setUnique(false); |
| fieldFLEX2.setShouldAllowNull(true); |
| table.addField(fieldFLEX2); |
| |
| FieldDefinition fieldFLEX3 = new FieldDefinition(); |
| fieldFLEX3.setName("FLEX3"); |
| fieldFLEX3.setTypeName("VARCHAR2"); |
| fieldFLEX3.setSize(80); |
| fieldFLEX3.setSubSize(0); |
| fieldFLEX3.setIsPrimaryKey(false); |
| fieldFLEX3.setIsIdentity(false); |
| fieldFLEX3.setUnique(false); |
| fieldFLEX3.setShouldAllowNull(true); |
| table.addField(fieldFLEX3); |
| |
| 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 buildEXTENS_JOIN_TABLETable() { |
| TableDefinition table = new TableDefinition(); |
| table.setName("EXTENS_JOIN_TABLE"); |
| |
| FieldDefinition fieldID1 = new FieldDefinition(); |
| fieldID1.setName("ID1"); |
| fieldID1.setTypeName("NUMERIC"); |
| fieldID1.setSize(15); |
| fieldID1.setShouldAllowNull(false); |
| fieldID1.setIsPrimaryKey(true); |
| fieldID1.setUnique(false); |
| fieldID1.setIsIdentity(false); |
| table.addField(fieldID1); |
| |
| FieldDefinition fieldID2 = new FieldDefinition(); |
| fieldID2.setName("ID2"); |
| fieldID2.setTypeName("NUMERIC"); |
| fieldID2.setSize(15); |
| fieldID2.setShouldAllowNull(false); |
| fieldID2.setIsPrimaryKey(true); |
| fieldID2.setUnique(false); |
| fieldID2.setIsIdentity(false); |
| table.addField(fieldID2); |
| |
| return table; |
| } |
| |
| } |