/******************************************************************************* | |
* Copyright (c) 1998, 2013 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 | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.models.conversion; | |
import java.util.*; | |
import org.eclipse.persistence.internal.helper.Helper; | |
import org.eclipse.persistence.tools.schemaframework.*; | |
public class ConversionDataObject { | |
public int id; | |
// ==================================== | |
// Direct Mapping Variables | |
// ==================================== | |
// Primitive types | |
public char aPChar; | |
public char[] aPCharArray; | |
public int aPInt; | |
public float aPFloat; | |
public boolean aPBoolean; | |
public long aPLong; | |
public double aPDouble; | |
public byte aPByte; | |
public byte[] aPByteArray; | |
public short aPShort; | |
// Primitive wrapper types | |
public Character aCharacter; | |
public Integer anInteger; | |
public Float aFloat; | |
public Boolean aBoolean; | |
public Long aLong; | |
public Double aDouble; | |
public Byte aByte; | |
public Short aShort; | |
// Misc. number types | |
public Number aNumber; | |
public java.math.BigDecimal aBigDecimal; | |
public java.math.BigInteger aBigInteger; | |
// Date/Time types | |
public java.sql.Date anSQLDate; | |
public java.util.Date aJavaDate; | |
public java.sql.Time aTime; | |
public java.sql.Timestamp aTimestamp; | |
public java.util.Calendar aCalendar; | |
// Other | |
public String aString; | |
// ==================================== | |
// Type Conversion Mapping Variables | |
// ==================================== | |
// public int intToChar; | |
public long timestamp2Long; | |
public Date dateToTimestamp;// Only mapped with DB2. Used for nano-second test | |
public int intToFloat; | |
public int intToLong; | |
public int intToDouble; | |
public int intToShort; | |
public int intToString; | |
public int intToByte; | |
// public float floatToChar; | |
public float floatToInt; | |
public float floatToLong; | |
public float floatToDouble; | |
public float floatToShort; | |
public float floatToString; | |
public float floatToByte; | |
public String stringToInt; | |
public static ConversionDataObject example1() { | |
ConversionDataObject example = new ConversionDataObject(); | |
example.aPChar = 'a'; | |
example.setAPCharArray(new char[] { 'a', 'b', 'c' }); | |
example.aPInt = 1; | |
example.aPFloat = 1.0F; | |
example.aPBoolean = true; | |
example.aPLong = 1L; | |
example.aPDouble = 1.0; | |
example.aPByte = 1; | |
example.setAPByteArray(new byte[] { 1, 2, 3 }); | |
example.aPShort = 1; | |
example.aCharacter = new Character('a'); | |
example.anInteger = new Integer(1); | |
example.aFloat = new Float(1.0); | |
example.aBoolean = new Boolean(false); | |
example.aLong = new Long(1L); | |
example.aDouble = new Double(1.0); | |
example.aByte = new Byte((byte)1); | |
example.aShort = new Short((short)1); | |
example.aBigDecimal = new java.math.BigDecimal(1.0); | |
example.aBigInteger = new java.math.BigInteger("1"); | |
example.aNumber = example.aBigDecimal; | |
example.anSQLDate = Helper.dateFromYearMonthDate(1903, 3, 3); | |
Calendar c = Calendar.getInstance(); | |
c.set(1903, 3, 3); | |
c.set(Calendar.MILLISECOND, 0); | |
example.aJavaDate = c.getTime(); | |
example.aCalendar = Calendar.getInstance(); | |
example.aCalendar.set(1999, 06, 06, 0, 0, 0); | |
example.aCalendar.set(Calendar.MILLISECOND, 0); | |
example.aTime = Helper.timeFromHourMinuteSecond(3, 3, 3); | |
example.aTimestamp = Helper.timestampFromYearMonthDateHourMinuteSecondNanos(1903, 3, 3, 3, 3, 3, 0); | |
example.aString = new String("Conversion Managaer Test Example 1"); | |
// example.intToChar = 111; | |
example.timestamp2Long = Helper.timestampFromYearMonthDateHourMinuteSecondNanos(1990, 1, 1, 0, 0, 0, 0).getTime(); | |
example.dateToTimestamp = new java.util.Date(System.currentTimeMillis()); | |
example.intToFloat = 111; | |
example.intToLong = 111; | |
example.intToDouble = 111; | |
example.intToShort = 111; | |
example.intToString = 111; | |
example.intToByte = 11; | |
// example.floatToChar = 111; | |
example.floatToInt = 111; | |
example.floatToLong = 111; | |
example.floatToDouble = 111; | |
example.floatToShort = 111; | |
example.floatToString = 111; | |
example.floatToByte = 11; | |
example.stringToInt = new String("111"); | |
return example; | |
} | |
public static ConversionDataObject example2() { | |
ConversionDataObject example = new ConversionDataObject(); | |
example.aPChar = 'b'; | |
example.setAPCharArray(new char[] { 'd', 'e', 'f' }); | |
example.aPInt = 2; | |
example.aPFloat = 2.0F; | |
example.aPBoolean = false; | |
example.aPLong = 2L; | |
example.aPDouble = 2.0; | |
example.aPByte = 2; | |
example.setAPByteArray(new byte[] { 4, 5, 6 }); | |
example.aPShort = 2; | |
example.aCharacter = new Character('b'); | |
example.anInteger = new Integer(2); | |
example.aFloat = new Float(2.0); | |
example.aBoolean = new Boolean(true); | |
example.aLong = new Long(2L); | |
example.aDouble = new Double(2.0); | |
example.aByte = new Byte((byte)2); | |
example.aShort = new Short((short)2); | |
example.aBigDecimal = new java.math.BigDecimal(2.0); | |
example.aBigInteger = new java.math.BigInteger("2"); | |
example.aNumber = example.aBigDecimal; | |
example.anSQLDate = Helper.dateFromYearMonthDate(1906, 6, 6); | |
Calendar c = Calendar.getInstance(); | |
c.set(1906, 6, 6); | |
c.set(Calendar.MILLISECOND, 0); | |
example.aJavaDate = c.getTime(); | |
example.aCalendar = Calendar.getInstance(); | |
example.aCalendar.set(1991, 11, 10, 0, 0, 0); | |
example.aCalendar.set(java.util.Calendar.MILLISECOND, 0); | |
example.aTime = Helper.timeFromHourMinuteSecond(6, 6, 6); | |
example.aTimestamp = Helper.timestampFromYearMonthDateHourMinuteSecondNanos(1906, 6, 6, 6, 6, 6, 0); | |
example.aString = new String("Conversion Managaer Test Example 2"); | |
// example.intToChar = 222; | |
example.timestamp2Long = Helper.timestampFromYearMonthDateHourMinuteSecondNanos(1999, 9, 9, 0, 0, 0, 0).getTime(); | |
example.intToFloat = 222; | |
example.intToLong = 222; | |
example.intToDouble = 222; | |
example.intToShort = 222; | |
example.intToString = 222; | |
example.intToByte = 22; | |
// example.floatToChar = 222; | |
example.floatToInt = 222; | |
example.floatToLong = 222; | |
example.floatToDouble = 222; | |
example.floatToShort = 222; | |
example.floatToString = 222; | |
example.floatToByte = 22; | |
example.stringToInt = new String("222"); | |
return example; | |
} | |
public static ConversionDataObject example3() { | |
ConversionDataObject example = new ConversionDataObject(); | |
example.aPChar = 'c'; | |
example.setAPCharArray(new char[] { 'g', 'h', 'i' }); | |
example.aPInt = 3; | |
example.aPFloat = 2.0F; | |
example.aPBoolean = false; | |
example.aPLong = 3L; | |
example.aPDouble = 3.0; | |
example.aPByte = 3; | |
example.setAPByteArray(new byte[] { 7, 8, 9 }); | |
example.aPShort = 3; | |
example.aCharacter = new Character('c'); | |
example.anInteger = new Integer(3); | |
example.aFloat = new Float(3.0); | |
example.aBoolean = new Boolean(true); | |
example.aLong = new Long(3L); | |
example.aDouble = new Double(3.0); | |
example.aByte = new Byte((byte)3); | |
example.aShort = new Short((short)3); | |
example.aBigDecimal = new java.math.BigDecimal(3.0); | |
example.aBigInteger = new java.math.BigInteger("3"); | |
example.aNumber = example.aBigDecimal; | |
example.anSQLDate = Helper.dateFromYearMonthDate(1909, 9, 9); | |
Calendar c = Calendar.getInstance(); | |
c.set(1909, 9, 9); | |
c.set(Calendar.MILLISECOND, 0); | |
example.aJavaDate = c.getTime(); | |
example.aCalendar = Calendar.getInstance(); | |
example.aCalendar.set(2001, 03, 8, 0, 0, 0); | |
example.aCalendar.set(Calendar.MILLISECOND, 0); | |
example.aTime = Helper.timeFromHourMinuteSecond(9, 9, 9); | |
example.aTimestamp = Helper.timestampFromYearMonthDateHourMinuteSecondNanos(1909, 9, 9, 9, 9, 9, 0); | |
example.aString = new String("Conversion Managaer Test Example 3"); | |
// example.intToChar = 333; | |
example.timestamp2Long = Helper.timestampFromYearMonthDateHourMinuteSecondNanos(1990, 1, 1, 0, 0, 0, 0).getTime(); | |
example.intToFloat = 333; | |
example.intToLong = 333; | |
example.intToDouble = 333; | |
example.intToShort = 333; | |
example.intToString = 333; | |
example.intToByte = 33; | |
// example.floatToChar = 333; | |
example.floatToInt = 333; | |
example.floatToLong = 333; | |
example.floatToDouble = 333; | |
example.floatToShort = 333; | |
example.floatToString = 333; | |
example.floatToByte = 33; | |
example.stringToInt = new String("333"); | |
return example; | |
} | |
public byte[] getAPByteArray() { | |
return aPByteArray; | |
} | |
public char[] getAPCharArray() { | |
return aPCharArray; | |
} | |
public void setAPByteArray(byte[] aPByteArray) { | |
this.aPByteArray = aPByteArray; | |
} | |
public void setAPCharArray(char[] aPCharArray) { | |
this.aPCharArray = aPCharArray; | |
} | |
/** | |
* Return a platform independant definition of the database table. | |
*/ | |
public static TableDefinition tableDefinition() { | |
TableDefinition definition = new TableDefinition(); | |
definition.setName("CM_OBJ"); | |
definition.addIdentityField("ID", Integer.class); | |
definition.addField("A_PCHAR_A", Character[].class); | |
definition.addField("A_PCHAR", Character.class); | |
definition.addField("A_PINT", Integer.class); | |
definition.addField("A_PFLOAT", Float.class); | |
FieldDefinition field = new FieldDefinition("A_PBOOLEAN", Boolean.class); | |
field.setShouldAllowNull(false); | |
definition.addField(field); | |
definition.addField("A_PLONG", Long.class); | |
definition.addField("A_PDOUBLE", Double.class); | |
definition.addField("A_PBYTE", Byte.class); | |
// The A_PBYTE_A field will be added after a plaftorm check in | |
// ConversionManagerSystem.createTables() | |
definition.addField("A_PSHORT", Short.class); | |
definition.addField("A_CHAR", Character.class); | |
definition.addField("AN_INTEGER", Integer.class); | |
definition.addField("A_FLOAT", Float.class); | |
FieldDefinition field2 = new FieldDefinition("A_BOOLEAN", Boolean.class); | |
field2.setShouldAllowNull(false); | |
definition.addField(field2); | |
definition.addField("A_LONG", Long.class); | |
definition.addField("A_DOUBLE", Double.class); | |
definition.addField("A_BYTE", Byte.class); | |
definition.addField("A_SHORT", Short.class); | |
definition.addField("A_NUMBER", java.math.BigDecimal.class); | |
definition.addField("A_BIGDEC", java.math.BigDecimal.class); | |
definition.addField("A_BIGINT", java.math.BigInteger.class); | |
definition.addField("AN_SQLDATE", java.sql.Date.class); | |
definition.addField("A_JAVADATE", java.sql.Timestamp.class); | |
definition.addField("A_TIME", java.sql.Time.class); | |
definition.addField("A_TIMESTMP", java.sql.Timestamp.class); | |
definition.addField("A_CALNDR", java.sql.Timestamp.class); | |
definition.addField("A_STRING", String.class, 50); | |
// definition.addField("INT2CHR", Character.class); | |
definition.addField("TIMESP2LNG", java.sql.Timestamp.class); | |
definition.addField("DATE2TIMESTAMP", java.sql.Timestamp.class); | |
definition.addField("INT2FLT", Float.class); | |
definition.addField("INT2LNG", Long.class); | |
definition.addField("INT2DBL", Double.class); | |
definition.addField("INT2SHORT", Short.class); | |
definition.addField("INT2STR", String.class); | |
definition.addField("INT2BYTE", Byte.class); | |
// definition.addField("FLT2CHR", Character.class); | |
definition.addField("FLT2INT", Integer.class); | |
definition.addField("FLT2LNG", Long.class); | |
definition.addField("FLT2DBL", Double.class); | |
definition.addField("FLT2SHORT", Short.class); | |
definition.addField("FLT2STR", String.class); | |
definition.addField("FLT2BYTE", Byte.class); | |
definition.addField("STR2INT", Integer.class); | |
return definition; | |
} | |
public String toString() { | |
return "ConversionDataObject(" + aPChar + ")"; | |
} | |
} |