package models.dataConstraintModel; import java.util.HashMap; public class Variable extends Expression { private String name; public Variable(String name) { super(); this.name = name; } public String getName() { return name; } @Override public HashMap<Position, Variable> getVariables() { HashMap<Position, Variable> variables = new HashMap<>(); variables.put(new Position(), this); return variables; } @Override public Expression getSubTerm(Position pos) { if (pos.isEmpty()) return this; return null; } @Override public Expression unify(Expression another) { return (Expression) another.clone(); } @Override public Expression getInverseMap(Expression outputValue, Position targetPos) { if (targetPos.isEmpty()) return outputValue; return null; } @Override public boolean contains(Expression exp) { return equals(exp); } @Override public boolean equals(Object another) { if (!(another instanceof Variable)) return false; return name.equals(((Variable) another).name); } @Override public int hashCode() { return name.hashCode(); } @Override public Object clone() { return new Variable(name); } public String toString() { return name; } }