/**
*
*/
package querqy.model;
/**
* @author René Kriegler, @renekrie
*
*/
abstract class AbstractNode<P extends Node> implements CloneableNode<P> {
protected final P parent;
protected final boolean generated;
public AbstractNode(P parent, boolean isGenerated) {
this.parent = parent;
this.generated = isGenerated;
}
@Override
public P getParent() {
return parent;
}
/* (non-Javadoc)
* @see querqy.model.Node#isGenerated()
*/
@Override
public boolean isGenerated() {
return generated;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (generated ? 1231 : 1237);
result = prime * result + ((parent == null) ? 0 : parent.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AbstractNode<?> other = (AbstractNode<?>) obj;
if (generated != other.generated)
return false;
if (parent == null) {
if (other.parent != null)
return false;
} else if (!parent.equals(other.parent))
return false;
return true;
}
}