| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.openjpa.persistence.kernel.common.apps; |
| |
| import java.math.BigDecimal; |
| import java.math.BigInteger; |
| import java.util.Arrays; |
| import java.util.Calendar; |
| import java.util.Date; |
| import javax.persistence.Entity; |
| import javax.persistence.Id; |
| import javax.persistence.Table; |
| |
| /** |
| * Used in testing; should be enhanced. |
| */ |
| @Entity |
| @Table(name = "afieldstt") |
| public class AllFieldsTypeTest { |
| |
| @Id |
| private int id; |
| private int testint; |
| private long testlong; |
| private short testshort; |
| private float testfloat; |
| private double testdouble; |
| private byte testbyte; |
| private boolean testboolean; |
| private char testchar; |
| private String testString; |
| private String testBigString; |
| private Date testDate; |
| private Calendar testCalendar; |
| private Object testObject; |
| private BigInteger testBigInteger; |
| private BigDecimal testBigDecimal; |
| |
| public Date getTestDate() { |
| return this.testDate; |
| } |
| |
| public void setTestDate(Date testDate) { |
| this.testDate = testDate; |
| } |
| |
| public void setTestCalendar(Calendar testCalendar) { |
| this.testCalendar = testCalendar; |
| } |
| |
| public Calendar getTestCalendar() { |
| return this.testCalendar; |
| } |
| |
| public Object getTestObject() { |
| return this.testObject; |
| } |
| |
| public void setTestObject(Object testObject) { |
| this.testObject = testObject; |
| } |
| |
| public char getTestchar() { |
| return this.testchar; |
| } |
| |
| public void setTestchar(char testchar) { |
| this.testchar = testchar; |
| } |
| |
| public int getTestint() { |
| return this.testint; |
| } |
| |
| public void setTestint(int testint) { |
| this.testint = testint; |
| } |
| |
| public short getTestshort() { |
| return this.testshort; |
| } |
| |
| public void setTestshort(short testshort) { |
| this.testshort = testshort; |
| } |
| |
| public long getTestlong() { |
| return this.testlong; |
| } |
| |
| public void setTestlong(long testlong) { |
| this.testlong = testlong; |
| } |
| |
| public boolean getTestboolean() { |
| return this.testboolean; |
| } |
| |
| public void setTestboolean(boolean testboolean) { |
| this.testboolean = testboolean; |
| } |
| |
| public float getTestfloat() { |
| return this.testfloat; |
| } |
| |
| public void setTestfloat(float testfloat) { |
| this.testfloat = testfloat; |
| } |
| |
| public double getTestdouble() { |
| return this.testdouble; |
| } |
| |
| public void setTestdouble(double testdouble) { |
| this.testdouble = testdouble; |
| } |
| |
| public String getTestString() { |
| return this.testString; |
| } |
| |
| public void setTestString(String testString) { |
| this.testString = testString; |
| } |
| |
| public void setTestBigString(String testBigString) { |
| this.testBigString = testBigString; |
| } |
| |
| public String getTestBigString() { |
| return this.testBigString; |
| } |
| |
| public byte getTestbyte() { |
| return this.testbyte; |
| } |
| |
| public void setTestbyte(byte testbyte) { |
| this.testbyte = testbyte; |
| } |
| |
| public BigInteger getTestBigInteger() { |
| return this.testBigInteger; |
| } |
| |
| public void setTestBigInteger(BigInteger testBigInteger) { |
| this.testBigInteger = testBigInteger; |
| } |
| |
| public BigDecimal getTestBigDecimal() { |
| return this.testBigDecimal; |
| } |
| |
| public void setTestBigDecimal(BigDecimal testBigDecimal) { |
| this.testBigDecimal = testBigDecimal; |
| } |
| |
| public String toString() { |
| return "\n{" |
| + "testint=" + testint + ";" |
| + "testlong=" + testlong + ";" |
| + "testshort=" + testshort + ";" |
| + "testfloat=" + testfloat + ";" |
| + "testdouble=" + testdouble + ";" |
| + "testbyte=" + testbyte + ";" |
| + "testboolean=" + testboolean + ";" |
| + "testchar=" + testchar + ";" |
| + "testString=" + testString + ";" |
| + "testBigString=" + testBigString + ";" |
| + "testDate=" + testDate + ";" |
| + "testCalendar=" + testCalendar + ";" |
| + "testObject=" + testObject |
| + "(" + ((testObject instanceof byte[]) ? |
| "(byte[])" + ((byte[]) testObject).length + "" : |
| (testObject == null ? "null" : |
| testObject.getClass().getName())) + ")" |
| + ";" |
| + "testBigInteger=" + testBigInteger + ";" |
| + "testBigDecimal=" + testBigDecimal + ";" |
| + "}"; |
| } |
| |
| public int hashCode() { |
| return (int) (( |
| testint |
| + testlong |
| + testshort |
| + testfloat |
| + testdouble |
| + testbyte |
| + (testboolean ? 1 : 0) |
| + testchar |
| + (testString == null ? 0 : testString.hashCode()) |
| + (testBigString == null ? 0 : testBigString.hashCode()) |
| + (testDate == null ? 0 : testDate.hashCode()) |
| + (testCalendar == null ? 0 : testCalendar.hashCode()) |
| + (testObject == null ? 0 : testObject.hashCode()) |
| + (testBigInteger == null ? 0 : testBigInteger.hashCode()) |
| + (testBigDecimal == null ? 0 : testBigDecimal.hashCode()))) |
| % Integer.MAX_VALUE; |
| } |
| |
| public boolean equals(Object other) { |
| if (other == null && !(other instanceof AllFieldsTypeTest)) |
| return false; |
| |
| AllFieldsTypeTest o = (AllFieldsTypeTest) other; |
| |
| return |
| o.testint == testint && |
| o.testlong == testlong && |
| o.testshort == testshort && |
| o.testfloat == testfloat && |
| o.testdouble == testdouble && |
| o.testbyte == testbyte && |
| o.testboolean == testboolean && |
| o.testchar == testchar && |
| eq(o.testString, testString) && |
| eq(o.testBigString, testBigString) && |
| eq(o.testDate, testDate) && |
| eq(o.testCalendar, testCalendar) && |
| eq(o.testObject, testObject) && |
| eq(o.testBigInteger, o.testBigInteger) && |
| eq(o.testBigDecimal, o.testBigDecimal); |
| } |
| |
| private boolean eq(Object a, Object b) { |
| if (a == b) |
| return true; |
| if (a == null && b != null) |
| return false; |
| if (a != null && b == null) |
| return false; |
| |
| // OK, this is stupid, but we want to special-case blobs |
| // thay are byte arrays, since new byte [] { 1, 2} does not |
| // equals inew byte [] { 1, 2} |
| if (a instanceof byte[] && b instanceof byte[]) |
| return Arrays.equals((byte[]) a, (byte[]) b); |
| |
| return a.equals(b); |
| } |
| |
| public int getId() { |
| return id; |
| } |
| |
| public void setId(int id) { |
| this.id = id; |
| } |
| } |
| |