blob: bca05f46765fd9cf29d53b5466bf352fdef64634 [file] [log] [blame]
/*
* 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 + ")";
}
}