NamedLiteralExpression.java

package edu.udel.cis.vsl.tass.model.impl.expression.literal;

import edu.udel.cis.vsl.tass.model.IF.ModelFactoryIF;
import edu.udel.cis.vsl.tass.model.IF.expression.LiteralExpressionIF;
import edu.udel.cis.vsl.tass.model.IF.expression.NamedLiteralExpressionIF;
import edu.udel.cis.vsl.tass.model.IF.type.PointerTypeIF;
import edu.udel.cis.vsl.tass.model.IF.type.TypeIF;
import edu.udel.cis.vsl.tass.number.IF.NumberIF;

public class NamedLiteralExpression extends LiteralExpression implements
		NamedLiteralExpressionIF {

	private String name;

	public NamedLiteralExpression(ModelFactoryIF factory, boolean value,
			String name, int literalId) {
		super(factory, value, literalId);
		this.name = name;
	}

	public NamedLiteralExpression(ModelFactoryIF factory, char value,
			String name, int literalId) {
		super(factory, value, literalId);
		this.name = name;
	}

	public NamedLiteralExpression(ModelFactoryIF factory, int value,
			String name, int literalId) {
		super(factory, value, literalId);
		this.name = name;
	}

	/**
	 * Constructs a LiteralExpression for an array or a record.
	 */
	public NamedLiteralExpression(ModelFactoryIF factory,
			LiteralExpressionIF[] value, TypeIF type, String name, int literalId) {
		super(factory, value, type, literalId);
		this.name = name;
	}

	public NamedLiteralExpression(ModelFactoryIF factory, NumberIF value,
			String name, int literalId) {
		super(factory, value, literalId);
		this.name = name;
	}

	public NamedLiteralExpression(ModelFactoryIF factory, String string,
			String name, int literalId) {
		super(factory, string, literalId);
		this.name = name;
	}

	/** A NULL pointer value. */
	public NamedLiteralExpression(ModelFactoryIF factory,
			PointerTypeIF pointerType, String name, int literalId) {
		super(factory, pointerType, literalId);
		this.name = name;
	}

	@Override
	public String name() {
		return name;
	}

	public String toString() {
		return name;
	}

	@Override
	public String atomString() {
		return name;
	}

}