package org.eclipse.iee.core.document.text;
public abstract class AbstractNode implements INode {
private INode parent;
private EventBusSupport febs;
public AbstractNode() {
febs = new EventBusSupport(this);
}
public INode getParent() {
return parent;
}
public void setParent(INode parent) {
INode oldParent = this.parent;
this.parent = parent;
if (parent != oldParent) {
onParentChanged(oldParent, parent);
}
}
protected void onParentChanged(INode oldParent, INode newParent) {
}
@Override
public boolean isOrContains(INode node) {
return node == this;
}
/* (non-Javadoc)
* @see org.eclipse.iee.pad.text.elements.INode#traverse(org.eclipse.iee.pad.text.elements.NodeVisitor)
*/
@Override
public void traverse(NodeVisitor visitor) {
traverse(visitor, 0);
}
void traverse(NodeVisitor visitor, int depth) {
visitor.head(this);
visitor.tail(this);
}
/* (non-Javadoc)
* @see org.eclipse.iee.pad.text.elements.INode#hasText()
*/
@Override
public boolean hasText() {
return false;
}
public EventBusSupport getEventBusSupport() {
return febs;
}
@Override
public boolean hasParent(INode node) {
return getParent() == node || (getParent() != null && getParent().hasParent(node));
}
}