package models;

import lombok.Getter;
import models.algebra.Symbol;
import models.algebra.Term;

@Getter
public abstract class RDLTerm extends Term{

	protected int order;
	
	public RDLTerm(Symbol symbol, int order) {
		super(symbol);
		this.order = order;
	}
	
	public int getTermOrder() {
		return getOrder();
	}
	
	@Override
	public abstract String toString();
	
	public abstract String toStringWithOrder();
	
	public String toTermString() {
		return toString();
	}
	
	@Override
	public abstract boolean equals(Object another);
	
	@Override
	public abstract int hashCode();
	
	@Override
	public abstract Object clone();

}
