/*******************************************************************************
* Copyright (c) 1998, 2015 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 v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
* 07/07/2014-2.5.3 Rick Curtis
* - 375101: Date and Calendar should not require @Temporal.
******************************************************************************/
package org.eclipse.persistence.testing.models.jpa.datetime;
import org.eclipse.persistence.testing.framework.TogglingFastTableCreator;
import org.eclipse.persistence.tools.schemaframework.FieldDefinition;
import org.eclipse.persistence.tools.schemaframework.TableDefinition;
public class DateTimeTableCreator extends TogglingFastTableCreator {
public DateTimeTableCreator() {
setName("EJB3DateTimeProject");
addTableDefinition(buildDateTimeTable());
addTableDefinition(buildDateTimeSelfTable());
}
public static TableDefinition buildDateTimeTable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_DATE_TIME");
FieldDefinition fieldID = new FieldDefinition();
fieldID.setName("DT_ID");
fieldID.setTypeName("NUMERIC");
fieldID.setSize(15);
fieldID.setSubSize(0);
fieldID.setIsPrimaryKey(true);
fieldID.setIsIdentity(true);
fieldID.setUnique(false);
fieldID.setShouldAllowNull(false);
table.addField(fieldID);
FieldDefinition fieldSTREET = new FieldDefinition();
fieldSTREET.setName("SQL_DATE");
fieldSTREET.setTypeName("DATE");
fieldSTREET.setIsPrimaryKey(false);
fieldSTREET.setIsIdentity(false);
fieldSTREET.setUnique(false);
fieldSTREET.setShouldAllowNull(true);
table.addField(fieldSTREET);
FieldDefinition fieldCITY = new FieldDefinition();
fieldCITY.setName("SQL_TIME");
fieldCITY.setTypeName("TIME");
fieldCITY.setSize(6);
fieldCITY.setIsPrimaryKey(false);
fieldCITY.setIsIdentity(false);
fieldCITY.setUnique(false);
fieldCITY.setShouldAllowNull(true);
table.addField(fieldCITY);
FieldDefinition fieldPROVINCE = new FieldDefinition();
fieldPROVINCE.setName("SQL_TS");
fieldPROVINCE.setTypeName("TIMESTAMP");
fieldPROVINCE.setSize(6);
fieldPROVINCE.setIsPrimaryKey(false);
fieldPROVINCE.setIsIdentity(false);
fieldPROVINCE.setUnique(false);
fieldPROVINCE.setShouldAllowNull(true);
table.addField(fieldPROVINCE);
FieldDefinition fieldPOSTALCODE = new FieldDefinition();
fieldPOSTALCODE.setName("UTIL_DATE");
fieldPOSTALCODE.setTypeName("TIMESTAMP");
fieldPOSTALCODE.setSize(6);
fieldPOSTALCODE.setIsPrimaryKey(false);
fieldPOSTALCODE.setIsIdentity(false);
fieldPOSTALCODE.setUnique(false);
fieldPOSTALCODE.setShouldAllowNull(true);
table.addField(fieldPOSTALCODE);
FieldDefinition fieldCalToCal = new FieldDefinition();
fieldCalToCal.setName("CAL");
fieldCalToCal.setTypeName("TIMESTAMP");
fieldCalToCal.setSize(6);
fieldCalToCal.setIsPrimaryKey(false);
fieldCalToCal.setIsIdentity(false);
fieldCalToCal.setUnique(false);
fieldCalToCal.setShouldAllowNull(true);
table.addField(fieldCalToCal);
return table;
}
public static TableDefinition buildDateTimeSelfTable() {
TableDefinition table = new TableDefinition();
table.setName("CMP3_DATE_TIME_CMP3_DATE_TIME");
FieldDefinition field0 = new FieldDefinition();
field0.setName("DateTime_DT_ID");
field0.setTypeName("NUMERIC");
field0.setSize(15);
field0.setShouldAllowNull(false);
field0.setIsPrimaryKey(false);
field0.setUnique(false);
field0.setIsIdentity(false);
table.addField(field0);
FieldDefinition field1 = new FieldDefinition();
field1.setName("UNISELFMAP_DT_ID");
field1.setTypeName("NUMERIC");
field1.setSize(15);
field1.setShouldAllowNull(false);
field1.setIsPrimaryKey(false);
field1.setUnique(false);
field1.setIsIdentity(false);
table.addField(field1);
FieldDefinition field2 = new FieldDefinition();
field2.setName("UNISELFMAP_KEY");
field2.setTypeName("TIMESTAMP");
field2.setShouldAllowNull(true);
field2.setIsPrimaryKey(false);
field2.setUnique(false);
field2.setIsIdentity(false);
table.addField(field2);
return table;
}
}