package ql.semantics.values; /** * Created by bore on 16/02/15. */ public class StrValue extends Value<String> { public StrValue(String value) { super(value); } @Override public Value add(Value v) { return v.addString(this); } @Override public Value addString(StrValue v) { return new StrValue(v.getValue() + this.getValue()); } @Override public Value equ(Value v) { return v.equString(this); } @Override public Value equString(StrValue v) { return new BoolValue(v.getValue().equals(this.getValue())); } @Override public Value notEqu(Value v) { return v.notEquString(this); } @Override public Value notEquString(StrValue v) { boolean r = !(v.getValue().equals(this.getValue())); return new BoolValue(r); } @Override public <T> T accept (ValueVisitor<T> visitor) { return visitor.visit(this); } }