blob: 3a5227cb97cf169eb8f6c83500c4635f69b33c18 [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.directcollection;
import java.util.Calendar;
import java.util.Vector;
public class Employee {
private int id;
private Vector responsibilities;
private Vector outdoorResponsibilities;
public Employee() {
super();
}
public int getID() {
return id;
}
public void setID(int newId) {
id = newId;
}
public Vector getResponsibilities() {
return responsibilities;
}
public void setResponsibilities(Vector newResponsibilities) {
responsibilities = newResponsibilities;
}
public Vector getOutdoorResponsibilities() {
return outdoorResponsibilities;
}
public void setOutdoorResponsibilities(Vector newOutdoorResponsibilities) {
outdoorResponsibilities = newOutdoorResponsibilities;
}
public String toString()
{
String returnString = "Employee: " + this.getID() + " ";
if(getResponsibilities() != null)
{
returnString += "Responsiblities: ";
for(int i=0; i<getResponsibilities().size(); i++)
{
Object next = getResponsibilities().elementAt(i);
if(next != null){
returnString += next.toString() + " ";
}else{
returnString += "null_item" + " ";
}
}
}
if(getOutdoorResponsibilities() != null)
{
returnString += "Outdoor Responsiblities: ";
for(int i=0; i<getOutdoorResponsibilities().size(); i++)
{
Object next = getOutdoorResponsibilities().elementAt(i);
returnString += next.toString() + " ";
}
}
return returnString;
}
public boolean equals(Object object)
{
if(!(object instanceof Employee))
return false;
Employee employeeObject = (Employee)object;
if(this.getResponsibilities()==null && employeeObject.getResponsibilities()!=null)
{
return false;
}
if(employeeObject.getResponsibilities()==null && this.getResponsibilities()!=null)
{
return false;
}
if((this.getID() == employeeObject.getID()) &&
((this.getResponsibilities()==null && employeeObject.getResponsibilities()==null) ||(this.getResponsibilities().isEmpty() && employeeObject.getResponsibilities().isEmpty()) || (fixCalendar(this.getResponsibilities()).containsAll((fixCalendar(employeeObject.getResponsibilities()))))) &&
((this.getOutdoorResponsibilities()==null && employeeObject.getOutdoorResponsibilities()==null) ||(this.getOutdoorResponsibilities().isEmpty() && employeeObject.getOutdoorResponsibilities().isEmpty())|| (fixCalendar(this.getOutdoorResponsibilities()).containsAll(fixCalendar(employeeObject.getOutdoorResponsibilities()))))
)
return true;
return false;
}
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;
}
}