blob: d9de4ae1e3147e81be7c2d3d21a9bf66270d2262 [file] [log] [blame]
/*
* Copyright (c) 2018, 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
*/
package org.eclipse.persistence.testing.jaxb.xmlelementwrapper;
import java.util.Arrays;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Department
{
@XmlElement(namespace = "http://www.somenamespace.org/")
public String name;
@XmlElementWrapper(name = "employees", namespace = "http://www.somenamespace.org/")
@XmlElement(name = "employee", namespace = "http://www.somenamespace.org/")
public Employee[] employees;
/**
* Assumes the contents of the array is relevant, but not ordering.
*
*/
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Department)) {
return false;
}
Department dept = (Department) obj;
if (dept.employees == null && employees == null) {
return true;
}
if (dept.employees == null && employees != null) {
return false;
}
if (employees == null && dept.employees != null) {
return false;
}
if (employees.length != dept.employees.length) {
return false;
}
boolean foundMatch;
for (int i = 0; i < employees.length; i++) {
foundMatch = false;
for (int j = 0; j < dept.employees.length; j++) {
if (dept.employees[j].equals(employees[i])) {
foundMatch = true;
}
}
if (!foundMatch) {
return false;
}
}
return true;
}
@Override
public String toString() {
return "Department [employees=" + Arrays.toString(employees) + ", name=" + name + "]";
}
}