blob: 6676ee2cc250a509a068e0ba9a91c559bf8fdfc5 [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 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.oxm.mappings.typeddirect;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;
public class TestObject {
private byte[] base64;
private byte[] hex;
private Calendar date;
private Calendar time;
private Calendar dateTime;
private Vector base64Vector;
private Vector hexVector;
private Vector dateVector;
private Vector timeVector;
private Vector dateTimeVector;
private java.util.Date untypedDate;
private java.util.Date typedDate;
private java.sql.Date untypedSqlDate;
private java.sql.Date typedSqlDate;
private java.sql.Timestamp untypedTimestamp;
private java.sql.Timestamp typedTimestamp;
public byte[] getBase64() {
return base64;
}
public byte[] getHex() {
return hex;
}
public Calendar getDate() {
return date;
}
public Calendar getTime() {
return time;
}
public Calendar getDateTime() {
return dateTime;
}
public Vector getBase64Vector() {
return base64Vector;
}
public Vector getHexVector() {
return hexVector;
}
public Vector getDateVector() {
return dateVector;
}
public Vector getTimeVector() {
return timeVector;
}
public Vector getDateTimeVector() {
return dateTimeVector;
}
public void setBase64(byte[] value) {
base64 = value;
}
public void setHex(byte[] value) {
hex = value;
}
public void setDate(Calendar value) {
date = value;
}
public void setTime(Calendar value) {
time = value;
}
public void setDateTime(Calendar value) {
dateTime = value;
}
public void setBase64Vector(Vector value) {
base64Vector = value;
}
public void setHexVector(Vector value) {
hexVector = value;
}
public void setDateVector(Vector value) {
dateVector = value;
}
public void setTimeVector(Vector value) {
timeVector = value;
}
public void setDateTimeVector(Vector value) {
dateTimeVector = value;
}
public Date getUntypedDate() {
return untypedDate;
}
public void setUntypedDate(Date date) {
untypedDate = date;
}
public Date getTypedDate() {
return typedDate;
}
public void setTypedDate(Date date) {
typedDate = date;
}
public java.sql.Date getTypedSqlDate() {
return typedSqlDate;
}
public void setTypedSqlDate(java.sql.Date date) {
typedSqlDate = date;
}
public java.sql.Date getUntypedSqlDate() {
return untypedSqlDate;
}
public void setUntypedSqlDate(java.sql.Date date) {
untypedSqlDate = date;
}
public Timestamp getTypedTimestamp() {
return typedTimestamp;
}
public Timestamp getUntypedTimestamp() {
return untypedTimestamp;
}
public void setTypedTimestamp(Timestamp timestamp) {
typedTimestamp = timestamp;
}
public void setUntypedTimestamp(Timestamp timestamp) {
untypedTimestamp = timestamp;
}
public String toString() {
String toString = super.toString() + " :";
toString += "\n base64 = " + getBase64();
toString += "\n hex = " + getHex();
toString += "\n date = " + getDate();
toString += "\n time = " + getTime();
toString += "\n dateTime = " + getDateTime();
toString += "\n base64Vector = " + getBase64Vector();
toString += "\n hexVector = " + getHexVector();
toString += "\n dateVector = " + getDateVector();
toString += "\n timeVector = " + getTimeVector();
toString += "\n dateTimeVector = " + getDateTimeVector();
return toString;
}
public boolean equals(Object anObject) {
if (!(anObject instanceof TestObject)) {
return false;
}
TestObject aTestObject = (TestObject) anObject;
boolean equal = true;
equal = equal && equalByteArrays(aTestObject.getBase64(), this.getBase64());
equal = equal && equalByteArrays(aTestObject.getHex(), this.getHex());
equal = equal && (aTestObject.getDate().getTimeInMillis() == this.getDate().getTimeInMillis());
equal = equal && (aTestObject.getTime().getTimeInMillis() == this.getTime().getTimeInMillis());
equal = equal && (aTestObject.getDateTime().getTimeInMillis() == this.getDateTime().getTimeInMillis());
equal = equal && equalByteArrayVectors(aTestObject.getBase64Vector(), this.getBase64Vector());
equal = equal && equalByteArrayVectors(aTestObject.getHexVector(), this.getHexVector());
equal = equal && (fixCalendar(aTestObject.getDateVector()).equals(fixCalendar(this.getDateVector())));
equal = equal && (fixCalendar(aTestObject.getTimeVector()).equals(fixCalendar(this.getTimeVector())));
equal = equal && (fixCalendar(aTestObject.getDateTimeVector()).equals(fixCalendar(this.getDateTimeVector())));
equal = equal && (aTestObject.getTypedDate().equals(this.getTypedDate()));
equal = equal && (aTestObject.getUntypedDate().equals(this.getUntypedDate()));
equal = equal && (aTestObject.getTypedSqlDate().equals(this.getTypedSqlDate()));
equal = equal && (aTestObject.getUntypedSqlDate().equals(this.getUntypedSqlDate()));
equal = equal && (aTestObject.getTypedTimestamp().equals(this.getTypedTimestamp()));
equal = equal && (aTestObject.getUntypedTimestamp().equals(this.getUntypedTimestamp()));
return equal;
}
private boolean equalByteArrays(byte[] array1, byte[] array2) {
if (array1.length != array2.length) {
return false;
}
for (int i = 0; i < array1.length; i++) {
if (array1[i] != array2[i]) {
return false;
}
}
return true;
}
private boolean equalByteArrayVectors(Vector vector1, Vector vector2) {
if (vector1.size() != vector2.size()) {
return false;
}
for (int i = 0; i < vector1.size(); i++) {
byte[] array1 = (byte[]) vector1.elementAt(i);
byte[] array2 = (byte[]) vector2.elementAt(i);
if (!equalByteArrays(array1, array2)) {
return false;
}
}
return true;
}
private Vector fixCalendar(Vector v) {
if (null == v) {
return null;
}
Vector result = new Vector();
for (Object item : v) {
if (null != item && item instanceof java.util.Calendar) {
Calendar normalizedCalendar = Calendar.getInstance();
normalizedCalendar.setTimeInMillis(((Calendar)item).getTimeInMillis());
result.add(normalizedCalendar);
} else {
result.add(item);
}
}
return result;
}
}