package models;

import lombok.Getter;
import lombok.Setter;
import models.algebra.Type;

@Getter
@Setter
public class ResourceConstant extends EvaluatableTerm{
	
	private String name;
	private Type type;
	
	public ResourceConstant(String name) {
		super(0);
		this.name = name;
		this.type = null;
	}
	
	public ResourceConstant(String name, Type type) {
		super(0);
		this.name = name;
		this.type = type;
	}
	
	@Override
	public boolean isLinearRightNormal() {
		return true;
	}
	
	@Override
	public EvaluatableTerm linearRightNormalize() {
		return (ResourceConstant) clone();
	}

	@Override
	public void selfLinearRightNormalize() {
	}
	
	@Override
	public String toStr() {
		return this.name;
	}
	
	@Override
	public String toStrWithOrder() {
		return this.name + "(" + order + ")";
	}

	@Override
	public Object clone() {
		return new ResourceConstant(name, type);
	}
	
	

}
