Newer
Older
RDLProofSystem / src / main / java / models / terms / PrimedTerm.java
package models.terms;

import lombok.Getter;

@Getter
public class PrimedTerm extends EvaluatableTerm {

	private EvaluatableTerm primedTerm;
	private boolean isResource;
	
	public PrimedTerm(EvaluatableTerm term) {
		super(term.getSymbol(), term.getOrder(), term.getSize());
		this.primedTerm = term;
		this.isResource = term instanceof Resource;
	}

	@Override
	public String toString() {
		return primedTerm.toString() + "'";
	}

	@Override
	public String toStringWithOrder() {
		return toString() + "(" + primedTerm.getOrder() + ")";
	}

	@Override
	public int hashCode() {
		return toStringWithOrder().hashCode();
	}
	
	@Override
	public boolean equals(Object other) {
		if (! (other instanceof PrimedTerm)) {
			return false;
		}
		PrimedTerm otherPrimed = (PrimedTerm) other;
		EvaluatableTerm otherTerm = otherPrimed.getPrimedTerm();
		return this.primedTerm.equals(otherTerm);
	}

	@Override
	public Object clone() {
		return new PrimedTerm(primedTerm);
	}

	@Override
	public boolean isLinearRightNormalized() {
		return primedTerm.isLinearRightNormalized();
	}

	@Override
	public EvaluatableTerm linearRightNormalize() {
		return new PrimedTerm(primedTerm.linearRightNormalize());
	}

	@Override
	public void selfLinearRightNormalize() {
		primedTerm.selfLinearRightNormalize();
	}

	
	
}