blob: 4fd1343f914f314afdbac8ed7966aded753d0537 [file] [log] [blame]
/*
* Copyright (c) 2005, 2021 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2015 SAP. 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:
// SAP - initial API and implementation
package org.eclipse.persistence.testing.models.wdf.jpa1.types;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Id;
import jakarta.persistence.Lob;
import jakarta.persistence.PostUpdate;
import jakarta.persistence.Table;
import jakarta.persistence.Temporal;
import jakarta.persistence.TemporalType;
import jakarta.persistence.Transient;
import jakarta.persistence.Version;
import org.eclipse.persistence.annotations.Customizer;
import org.eclipse.persistence.annotations.Mutable;
import org.eclipse.persistence.testing.framework.wdf.customizer.AdjustArrayTypeCustomizer;
/*
* This entity class contains all supported <i>basic </i> data types.
*
* The Basic annotation is the simplest type of mapping to a database column. It can optionally be applied to any persistent
* property or instance variable of the following type: Java primitive types, wrappers of the primitive types, java.lang.String,
* java.math.BigInteger, java.math.BigDecimal, java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time,
* java.sql.Timestamp, byte[], Byte[], char[], Character[], enums, and any other type that implements Serializable.
*/
@Entity
@Table(name = "TMP_BASIC_TYPES_FA")
@Customizer(AdjustArrayTypeCustomizer.class)
public class BasicTypesFieldAccess {
@Transient
private boolean postUpdateCalled;
public BasicTypesFieldAccess() {
}
public BasicTypesFieldAccess(int anId) {
id = anId;
}
@Version
protected long version;
@Id
@Column(name = "ID")
protected int id;
// Java primitive types
@Basic
@Column(name = "P_BOOLEAN")
protected boolean primitiveBoolean; // TODO ?
@Basic
@Column(name = "P_BYTE")
protected byte primititveByte; // SMALLINT
@Basic
@Column(name = "P_CHAR")
protected char primitiveChar = '0'; // INTEGER
@Basic
@Column(name = "P_SHORT")
protected short primitiveShort; // SMALLINT
@Basic
@Column(name = "P_INT")
protected int primitiveInt; // INTEGER
@Basic
@Column(name = "P_LONG")
protected long primitiveLong; // BIGINT
@Basic
@Column(name = "P_FLOAT")
protected float primitiveFloat; // REAL
@Basic
@Column(name = "P_DOUBLE")
protected double primitiveDouble; // DOUBLE
// wrappers of primitive types
@Basic
@Column(name = "W_BOOLEAN")
protected Boolean wrapperBoolean; // TODO ?
@Basic
@Column(name = "W_BYTE")
protected Byte wrapperByte; // SMALLINT
@Basic
@Column(name = "W_CHARACTER")
protected Character wrapperCharacter; // INTEGER
@Basic
@Column(name = "W_SMALLINT")
protected Short wrapperShort; // SMALLINT
@Basic
@Column(name = "W_INTEGER")
protected Integer wrapperInteger; // INTEGER
@Basic
@Column(name = "W_LONG")
protected Long wrapperLong; // BIGINT
@Basic
@Column(name = "W_FLOAT")
protected Float wrapperFloat; // REAL
@Basic
@Column(name = "W_DOUBLE")
protected Double wrapperDouble; // DOUBLE
// immutable types
@Basic
@Column(name = "STRING_VC", length = 128)
protected String string2Varchar; // VARCHAR
@Basic
@Column(name = "STRING_CLOB")
@Lob
protected String string2Clob; // CLOB
@Basic
@Column(name = "BIG_DECIMAL", precision = 12, scale = 2)
protected BigDecimal bigDecimal; // DECIMAL
@Basic
@Column(name = "BIG_INTEGER", precision = 12)
protected BigInteger bigInteger; // DECIMAL
// mutable types
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UTIL_DATE")
protected Date utilDate; // DATE
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UTIL_CALENDAR")
protected Calendar utilCalendar; // TIMESTAMP
@Basic
@Column(name = "SQL_DATE")
protected java.sql.Date sqlDate; // DATE
@Basic
@Column(name = "SQL_TIME")
protected Time sqlTime; // TIME
@Basic
@Column(name = "SQL_TIMESTAMP")
protected Timestamp sqlTimestamp; // TIMESTAMP
// arrays
@Basic
@Column(name = "PBA_BINARY", length = 8, columnDefinition = "BINARY(8)")
@Mutable
protected byte[] primitiveByteArray2Binary; // BINARY
@Basic
@Column(name = "PBA_LONGVARBINARY", length = 1500)
@Mutable
protected byte[] primitiveByteArray2Longvarbinary; // LONGVARBINARY
@Basic
@Column(name = "PBA_BLOB")
@Lob
@Mutable
protected byte[] primitiveByteArray2Blob; // BLOB
@Basic
@Column(name = "WBA_BINARY", length = 8, columnDefinition = "BINARY(8)")
@Mutable
protected Byte[] wrapperByteArray2Binary; // BINARY
@Basic
@Column(name = "WBA_LONGVARBINARY", length = 1500)
@Mutable
protected Byte[] wrapperByteArray2Longvarbinary; // LONGVARBINARY
@Basic
@Column(name = "WBA_BLOB")
@Lob
@Mutable
protected Byte[] wrapperByteArray2Blob; // BLOB
@Basic
@Column(name = "PCA_VARCHAR", columnDefinition = "VARCHAR(255)")
@Mutable
protected char[] primitiveCharArray2Varchar; // VARCHAR
@Basic
@Column(name = "PCA_CLOB")
@Lob
@Mutable
protected char[] primitiveCharArray2Clob; // CLOB
@Basic
@Column(name = "WCA_VARCHAR", columnDefinition = "VARCHAR(255)")
@Mutable
protected Character[] wrapperCharacterArray2Varchar; // VARCHAR
@Basic
@Column(name = "WCA_CLOB")
@Lob
@Mutable
protected Character[] wrapperCharacterArray2Clob; // CLOB
// user-defined serializable
@Basic
@Column(name = "SERIALIZABLE")
@Lob
protected Serializable serializable; // BLOB
// enums
protected @Enumerated(EnumType.STRING)
@Column(name = "ENUM_STRING")
UserDefinedEnum enumString;
protected @Enumerated(EnumType.ORDINAL)
@Column(name = "ENUM_ORDINAL")
UserDefinedEnum enumOrdinal;
protected transient String notPersistentByModifier;
@Transient
protected int notPersistentByAnnotation;
public void fill() {
primitiveBoolean = true;
primititveByte = 1;
primitiveChar = 'A';
primitiveShort = 2;
primitiveInt = 3;
primitiveLong = 4;
primitiveFloat = 1.5f;
primitiveDouble = 2.5;
wrapperBoolean = Boolean.TRUE;
wrapperByte = (byte) 1;
wrapperCharacter = 'A';
wrapperShort = (short) 2;
wrapperInteger = 3;
wrapperLong = 4L;
wrapperFloat = 1.5f;
wrapperDouble = 2.5;
string2Varchar = "VARCHAR";
string2Clob = "CLOB";
bigDecimal = new BigDecimal("42.42");
bigInteger = new BigInteger("77");
utilDate = new Date(17000);
utilCalendar = new GregorianCalendar(2005, 9, 8, 10, 49);
sqlDate = java.sql.Date.valueOf("2005-09-08");
sqlTime = Time.valueOf("10:49:00");
sqlTimestamp = new Timestamp(17000);
primitiveByteArray2Binary = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
primitiveByteArray2Longvarbinary = new byte[1111];
for (int i = 0; i < primitiveByteArray2Longvarbinary.length; i++) {
primitiveByteArray2Longvarbinary[i] = (byte) i;
}
primitiveByteArray2Blob = new byte[3333];
for (int i = 0; i < primitiveByteArray2Blob.length; i++) {
primitiveByteArray2Blob[i] = (byte) i;
}
wrapperByteArray2Binary = new Byte[] {(byte) 0, (byte) 1, (byte) 2, (byte) 3,
(byte) 4, (byte) 5, (byte) 6, (byte) 7};
wrapperByteArray2Longvarbinary = new Byte[1111];
for (int i = 0; i < wrapperByteArray2Longvarbinary.length; i++) {
wrapperByteArray2Longvarbinary[i] = (byte) i;
}
wrapperByteArray2Blob = new Byte[3333];
for (int i = 0; i < wrapperByteArray2Blob.length; i++) {
wrapperByteArray2Blob[i] = (byte) i;
}
primitiveCharArray2Varchar = new char[] { 'V', 'A', 'R', 'C', 'A', 'R' };
primitiveCharArray2Clob = new char[] { 'C', 'L', 'O', 'B' };
wrapperCharacterArray2Varchar = new Character[] {'V', 'A', 'R',
'C', 'H', 'A', 'R'};
wrapperCharacterArray2Clob = new Character[] {'C', 'L', 'O',
'B'};
serializable = new UserDefinedSerializable("REGEN"); // BLOB
setEnumOrdinal(UserDefinedEnum.EMIL);
setEnumString(UserDefinedEnum.HUGO);
}
/**
* @return Returns the bigDecimal.
*/
public BigDecimal getBigDecimal() {
return bigDecimal;
}
/**
* @param bigDecimal
* The bigDecimal to set.
*/
public void setBigDecimal(BigDecimal bigDecimal) {
this.bigDecimal = bigDecimal;
}
/**
* @return Returns the bigInteger.
*/
public BigInteger getBigInteger() {
return bigInteger;
}
/**
* @param bigInteger
* The bigInteger to set.
*/
public void setBigInteger(BigInteger bigInteger) {
this.bigInteger = bigInteger;
}
/**
* @return Returns the id.
*/
public int getId() {
return id;
}
/**
* @param id
* The id to set.
*/
public void setId(int id) {
this.id = id;
}
/**
* @return Returns the primititveByte.
*/
public byte getPrimititveByte() {
return primititveByte;
}
/**
* @param primititveByte
* The primititveByte to set.
*/
public void setPrimititveByte(byte primititveByte) {
this.primititveByte = primititveByte;
}
/**
* @return Returns the primitiveBoolean.
*/
public boolean isPrimitiveBoolean() {
return primitiveBoolean;
}
/**
* @param primitiveBoolean
* The primitiveBoolean to set.
*/
public void setPrimitiveBoolean(boolean primitiveBoolean) {
this.primitiveBoolean = primitiveBoolean;
}
/**
* @return Returns the primitiveByteArray2Binary.
*/
public byte[] getPrimitiveByteArray2Binary() {
return primitiveByteArray2Binary;
}
/**
* @param primitiveByteArray2Binary
* The primitiveByteArray2Binary to set.
*/
public void setPrimitiveByteArray2Binary(byte[] primitiveByteArray2Binary) {
this.primitiveByteArray2Binary = primitiveByteArray2Binary;
}
/**
* @return Returns the primitiveByteArray2Blob.
*/
public byte[] getPrimitiveByteArray2Blob() {
return primitiveByteArray2Blob;
}
/**
* @param primitiveByteArray2Blob
* The primitiveByteArray2Blob to set.
*/
public void setPrimitiveByteArray2Blob(byte[] primitiveByteArray2Blob) {
this.primitiveByteArray2Blob = primitiveByteArray2Blob;
}
/**
* @return Returns the primitiveByteArray2Longvarbinary.
*/
public byte[] getPrimitiveByteArray2Longvarbinary() {
return primitiveByteArray2Longvarbinary;
}
/**
* @param primitiveByteArray2Longvarbinary
* The primitiveByteArray2Longvarbinary to set.
*/
public void setPrimitiveByteArray2Longvarbinary(byte[] primitiveByteArray2Longvarbinary) {
this.primitiveByteArray2Longvarbinary = primitiveByteArray2Longvarbinary;
}
/**
* @return Returns the primitiveChar.
*/
public char getPrimitiveChar() {
return primitiveChar;
}
/**
* @param primitiveChar
* The primitiveChar to set.
*/
public void setPrimitiveChar(char primitiveChar) {
this.primitiveChar = primitiveChar;
}
/**
* @return Returns the primitiveCharArray2Clob.
*/
public char[] getPrimitiveCharArray2Clob() {
return primitiveCharArray2Clob;
}
/**
* @param primitiveCharArray2Clob
* The primitiveCharArray2Clob to set.
*/
public void setPrimitiveCharArray2Clob(char[] primitiveCharArray2Clob) {
this.primitiveCharArray2Clob = primitiveCharArray2Clob;
}
/**
* @return Returns the primitiveCharArray2Varchar.
*/
public char[] getPrimitiveCharArray2Varchar() {
return primitiveCharArray2Varchar;
}
/**
* @param primitiveCharArray2Varchar
* The primitiveCharArray2Varchar to set.
*/
public void setPrimitiveCharArray2Varchar(char[] primitiveCharArray2Varchar) {
this.primitiveCharArray2Varchar = primitiveCharArray2Varchar;
}
/**
* @return Returns the primitiveFloat.
*/
public float getPrimitiveFloat() {
return primitiveFloat;
}
/**
* @param primitiveFloat
* The primitiveFloat to set.
*/
public void setPrimitiveFloat(float primitiveFloat) {
this.primitiveFloat = primitiveFloat;
}
/**
* @return Returns the primitiveInt.
*/
public int getPrimitiveInt() {
return primitiveInt;
}
/**
* @param primitiveInt
* The primitiveInt to set.
*/
public void setPrimitiveInt(int primitiveInt) {
this.primitiveInt = primitiveInt;
}
/**
* @return Returns the primitiveLong.
*/
public long getPrimitiveLong() {
return primitiveLong;
}
/**
* @param primitiveLong
* The primitiveLong to set.
*/
public void setPrimitiveLong(long primitiveLong) {
this.primitiveLong = primitiveLong;
}
/**
* @return Returns the primitiveShort.
*/
public short getPrimitiveShort() {
return primitiveShort;
}
/**
* @param primitiveShort
* The primitiveShort to set.
*/
public void setPrimitiveShort(short primitiveShort) {
this.primitiveShort = primitiveShort;
}
/**
* @return Returns the prmitiveDouble.
*/
public double getPrimitiveDouble() {
return primitiveDouble;
}
/**
* @param prmitiveDouble
* The prmitiveDouble to set.
*/
public void setPrimitiveDouble(double prmitiveDouble) {
this.primitiveDouble = prmitiveDouble;
}
/**
* @return Returns the serializable.
*/
public Serializable getSerializable() {
return serializable;
}
/**
* @param serializable
* The serializable to set.
*/
public void setSerializable(Serializable serializable) {
this.serializable = serializable;
}
/**
* @return Returns the sqlDate.
*/
public java.sql.Date getSqlDate() {
return sqlDate;
}
/**
* @param sqlDate
* The sqlDate to set.
*/
public void setSqlDate(java.sql.Date sqlDate) {
this.sqlDate = sqlDate;
}
/**
* @return Returns the sqlTime.
*/
public Time getSqlTime() {
return sqlTime;
}
/**
* @param sqlTime
* The sqlTime to set.
*/
public void setSqlTime(Time sqlTime) {
this.sqlTime = sqlTime;
}
/**
* @return Returns the sqlTimestamp.
*/
public Timestamp getSqlTimestamp() {
return sqlTimestamp;
}
/**
* @param sqlTimestamp
* The sqlTimestamp to set.
*/
public void setSqlTimestamp(Timestamp sqlTimestamp) {
this.sqlTimestamp = sqlTimestamp;
}
/**
* @return Returns the string2Clob.
*/
public String getString2Clob() {
return string2Clob;
}
/**
* @param string2Clob
* The string2Clob to set.
*/
public void setString2Clob(String string2Clob) {
this.string2Clob = string2Clob;
}
/**
* @return Returns the string2Varchar.
*/
public String getString2Varchar() {
return string2Varchar;
}
/**
* @param string2Varchar
* The string2Varchar to set.
*/
public void setString2Varchar(String string2Varchar) {
this.string2Varchar = string2Varchar;
}
/**
* @return Returns the utilCalendar.
*/
public Calendar getUtilCalendar() {
return utilCalendar;
}
/**
* @param utilCalendar
* The utilCalendar to set.
*/
public void setUtilCalendar(Calendar utilCalendar) {
this.utilCalendar = utilCalendar;
}
/**
* @return Returns the utilDate.
*/
public Date getUtilDate() {
return utilDate;
}
/**
* @param utilDate
* The utilDate to set.
*/
public void setUtilDate(Date utilDate) {
this.utilDate = utilDate;
}
/**
* @return Returns the wrapperBoolean.
*/
public Boolean getWrapperBoolean() {
return wrapperBoolean;
}
/**
* @param wrapperBoolean
* The wrapperBoolean to set.
*/
public void setWrapperBoolean(Boolean wrapperBoolean) {
this.wrapperBoolean = wrapperBoolean;
}
/**
* @return Returns the wrapperByte.
*/
public Byte getWrapperByte() {
return wrapperByte;
}
/**
* @param wrapperByte
* The wrapperByte to set.
*/
public void setWrapperByte(Byte wrapperByte) {
this.wrapperByte = wrapperByte;
}
/**
* @return Returns the wrapperByteArray2Binary.
*/
public Byte[] getWrapperByteArray2Binary() {
return wrapperByteArray2Binary;
}
/**
* @param wrapperByteArray2Binary
* The wrapperByteArray2Binary to set.
*/
public void setWrapperByteArray2Binary(Byte[] wrapperByteArray2Binary) {
this.wrapperByteArray2Binary = wrapperByteArray2Binary;
}
/**
* @return Returns the wrapperByteArray2Blob.
*/
public Byte[] getWrapperByteArray2Blob() {
return wrapperByteArray2Blob;
}
/**
* @param wrapperByteArray2Blob
* The wrapperByteArray2Blob to set.
*/
public void setWrapperByteArray2Blob(Byte[] wrapperByteArray2Blob) {
this.wrapperByteArray2Blob = wrapperByteArray2Blob;
}
/**
* @return Returns the wrapperByteArray2Longvarbinary.
*/
public Byte[] getWrapperByteArray2Longvarbinary() {
return wrapperByteArray2Longvarbinary;
}
/**
* @param wrapperByteArray2Longvarbinary
* The wrapperByteArray2Longvarbinary to set.
*/
public void setWrapperByteArray2Longvarbinary(Byte[] wrapperByteArray2Longvarbinary) {
this.wrapperByteArray2Longvarbinary = wrapperByteArray2Longvarbinary;
}
/**
* @return Returns the wrapperCharacter.
*/
public Character getWrapperCharacter() {
return wrapperCharacter;
}
/**
* @param wrapperCharacter
* The wrapperCharacter to set.
*/
public void setWrapperCharacter(Character wrapperCharacter) {
this.wrapperCharacter = wrapperCharacter;
}
/**
* @return Returns the wrapperCharacterArray2Clob.
*/
public Character[] getWrapperCharacterArray2Clob() {
return wrapperCharacterArray2Clob;
}
/**
* @param wrapperCharacterArray2Clob
* The wrapperCharacterArray2Clob to set.
*/
public void setWrapperCharacterArray2Clob(Character[] wrapperCharacterArray2Clob) {
this.wrapperCharacterArray2Clob = wrapperCharacterArray2Clob;
}
/**
* @return Returns the wrapperCharacterArray2Varchar.
*/
public Character[] getWrapperCharacterArray2Varchar() {
return wrapperCharacterArray2Varchar;
}
/**
* @param wrapperCharacterArray2Varchar
* The wrapperCharacterArray2Varchar to set.
*/
public void setWrapperCharacterArray2Varchar(Character[] wrapperCharacterArray2Varchar) {
this.wrapperCharacterArray2Varchar = wrapperCharacterArray2Varchar;
}
/**
* @return Returns the wrapperDouble.
*/
public Double getWrapperDouble() {
return wrapperDouble;
}
/**
* @param wrapperDouble
* The wrapperDouble to set.
*/
public void setWrapperDouble(Double wrapperDouble) {
this.wrapperDouble = wrapperDouble;
}
/**
* @return Returns the wrapperFloat.
*/
public Float getWrapperFloat() {
return wrapperFloat;
}
/**
* @param wrapperFloat
* The wrapperFloat to set.
*/
public void setWrapperFloat(Float wrapperFloat) {
this.wrapperFloat = wrapperFloat;
}
/**
* @return Returns the wrapperInteger.
*/
public Integer getWrapperInteger() {
return wrapperInteger;
}
/**
* @param wrapperInteger
* The wrapperInteger to set.
*/
public void setWrapperInteger(Integer wrapperInteger) {
this.wrapperInteger = wrapperInteger;
}
/**
* @return Returns the wrapperLong.
*/
public Long getWrapperLong() {
return wrapperLong;
}
/**
* @param wrapperLong
* The wrapperLong to set.
*/
public void setWrapperLong(Long wrapperLong) {
this.wrapperLong = wrapperLong;
}
/**
* @return Returns the wrapperShort.
*/
public Short getWrapperShort() {
return wrapperShort;
}
/**
* @param wrapperShort
* The wrapperShort to set.
*/
public void setWrapperShort(Short wrapperShort) {
this.wrapperShort = wrapperShort;
}
public void clearPostUpdate() {
postUpdateCalled = false;
}
@PostUpdate
public void postUpdate() {
postUpdateCalled = true;
}
public boolean postUpdateWasCalled() {
return postUpdateCalled;
}
public void setEnumString(UserDefinedEnum enumString) {
this.enumString = enumString;
}
public UserDefinedEnum getEnumString() {
return enumString;
}
public void setEnumOrdinal(UserDefinedEnum enumOrdinal) {
this.enumOrdinal = enumOrdinal;
}
public UserDefinedEnum getEnumOrdinal() {
return enumOrdinal;
}
public synchronized long getVersion() {
return version;
}
}