package org.scribble.ast.name.simple; import org.antlr.runtime.tree.CommonTree; import org.scribble.ast.AstFactoryImpl; import org.scribble.del.ScribDel; import org.scribble.sesstype.kind.RecVarKind; import org.scribble.sesstype.name.RecVar; public class RecVarNode extends SimpleNameNode<RecVarKind> { public RecVarNode(CommonTree source, String identifier) { super(source, identifier); } // Factor up to SimpleNameNode? public RecVarNode reconstruct(String id) { ScribDel del = del(); RecVarNode rv = new RecVarNode(this.source, id); rv = (RecVarNode) rv.del(del); return rv; } @Override protected RecVarNode copy() { return new RecVarNode(this.source, getIdentifier()); } @Override public RecVarNode clone() { return (RecVarNode) AstFactoryImpl.FACTORY.SimpleNameNode(this.source, RecVarKind.KIND, getIdentifier()); } @Override public RecVar toName() { return new RecVar(getIdentifier()); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof RecVarNode)) { return false; } return ((RecVarNode) o).canEqual(this) && super.equals(o); } @Override public boolean canEqual(Object o) { return o instanceof RecVarNode; } @Override public int hashCode() { int hash = 349; hash = 31 * super.hashCode(); return hash; } }