/*
* AbstractObj.java
*
* Created on July 15, 2002, 11:24 AM
*/
package org.freehep.xml.io.test;
import java.util.*;
/**
*
* @author turri
*/
public abstract class AbstractObj {
private int internalStatus = 0;
protected Vector vect = new Vector();
/** Creates a new instance of AbstractObj */
public AbstractObj() {
this(0);
}
public AbstractObj(int status) {
setStatus( status );
}
public void setStatus( int status ) {
this.internalStatus = status;
}
public int getStatus() {
return internalStatus;
}
public void addObject( Object obj ) {
vect.add(obj);
}
public boolean equalsObj( Object obj ) {
Vector equalVect = new Vector();
equalVect.add(this);
if ( obj == this ) return true;
return equalsObj( obj, equalVect, "" );
}
public boolean equalsObj( Object obj, Vector equalVect, String indent ) {
if ( obj.getClass() != this.getClass() ) return false;
if ( ((AbstractObj)obj).getStatus() != getStatus() ) return false;
for ( int i = 0; i < vect.size(); i++ ) {
if ( ! equalVect.contains( this.vect.get(i) ) ) {
equalVect.add( this.vect.get(i) );
if ( ! ((AbstractObj)((AbstractObj)obj).vect.get(i)).equalsObj( this.vect.get(i), equalVect, indent+" " ) ) return false;
}
}
return true;
}
public void print() {
Vector printVect = new Vector();
printVect.add(this);
System.out.println(getClass()+" "+internalStatus);
print( printVect, " " );
}
public void print( Vector printVect, String indent ) {
for ( int i = 0; i < vect.size(); i++ ) {
AbstractObj tmpObj = (AbstractObj)vect.get(i);
System.out.println(indent+tmpObj.getClass()+" "+tmpObj.getStatus());
if ( ! printVect.contains( tmpObj ) ) {
printVect.add( tmpObj );
tmpObj.print( printVect, indent+" " );
}
}
}
}