| /* |
| * Copyright (c) 1998, 2021 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.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 = 'a'; |
| example.anInteger = 1; |
| example.aFloat = 1.0f; |
| example.aBoolean = Boolean.FALSE; |
| example.aLong = 1L; |
| example.aDouble = 1.0; |
| example.aByte = (byte) 1; |
| example.aShort = (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 = 'b'; |
| example.anInteger = 2; |
| example.aFloat = 2.0f; |
| example.aBoolean = Boolean.TRUE; |
| example.aLong = 2L; |
| example.aDouble = 2.0; |
| example.aByte = (byte) 2; |
| example.aShort = (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 = 'c'; |
| example.anInteger = 3; |
| example.aFloat = 3.0f; |
| example.aBoolean = Boolean.TRUE; |
| example.aLong = 3L; |
| example.aDouble = 3.0; |
| example.aByte = (byte) 3; |
| example.aShort = (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 + ")"; |
| } |
| } |