CastNode.java

package edu.udel.cis.vsl.tass.ast.impl.expression;

import edu.udel.cis.vsl.tass.ast.IF.expression.CastNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.expression.ExpressionNodeIF;
import edu.udel.cis.vsl.tass.ast.IF.type.TypeNodeIF;
import edu.udel.cis.vsl.tass.ast.impl.expression.ExpressionNode;

/**
 * A cast to a different type.
 * 
 * @author Timothy K. Zirkel (zirkel)
 * 
 */
public class CastNode extends ExpressionNode implements CastNodeIF {

	private TypeNodeIF newType;
	private ExpressionNodeIF expression;
	
	public CastNode(long id) {
		super(id);
	}
	
	/**
	 * The parameter newType is the type to which the expression is being cast.
	 * The parameter expression is the base expression.
	 */
	public CastNode(long id, TypeNodeIF newType, ExpressionNodeIF expression) {
		super(id);
		this.newType = newType;
		this.expression = expression;
	}

	@Override
	public TypeNodeIF newType() {
		return newType;
	}

	@Override
	public ExpressionNodeIF expression() {
		return expression;
	}

	@Override
	public void setNewType(TypeNodeIF newType) {
		this.newType = newType;
	}

	@Override
	public void setExpression(ExpressionNodeIF expression) {
		this.expression = expression;
	}

}