blob: 968dc0c302aaf2d821ea0e2c2bef67ae3465836e [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:
// Denise Smith - May 8/2009
package org.eclipse.persistence.testing.oxm.mappings.compositeobject.self.norefclass;
import java.io.ByteArrayOutputStream;
import java.io.StringWriter;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.eclipse.persistence.platform.xml.XMLComparer;
import org.eclipse.persistence.testing.oxm.mappings.compositeobject.self.Employee;
import org.w3c.dom.Node;
public class Root {
Object theObject;
public Root(){
}
public Object getTheObject() {
return theObject;
}
public void setTheObject(Object theObject) {
this.theObject = theObject;
}
public boolean equals(Object object) {
try {
Root theRoot = (Root)object;
if (this == theRoot) {
return true;
}
if(theObject == null){
return theRoot.getTheObject() == null;
}
if(theObject instanceof Node){
if(theRoot.getTheObject() instanceof Node){
//compare Nodes
XMLComparer xmlComparer = new XMLComparer();
return xmlComparer.isNodeEqual((Node)theObject, (Node)theRoot.getTheObject());
}else{
return false;
}
}
return theObject.equals(theRoot.getTheObject());
} catch (ClassCastException e) {
return false;
}
}
public String toString() {
if(theObject != null){
if(theObject instanceof Node){
DOMSource source = new DOMSource((Node)theObject);
//String s = new String();
//StringWriter writer = new StringWriter();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
StreamResult result = new StreamResult(stream);
try {
TransformerFactory.newInstance().newTransformer().transform(source, result);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return stream.toString();
}
return theObject.toString();
}
return null;
}
}