CommonInclusion.java

package edu.udel.cis.vsl.abc.token.common;

import edu.udel.cis.vsl.abc.token.IF.CivlcToken;
import edu.udel.cis.vsl.abc.token.IF.Inclusion;
import edu.udel.cis.vsl.abc.token.IF.SourceFile;

public class CommonInclusion implements Inclusion {

	/**
	 * The file included. Always non-null.
	 */
	private SourceFile file;

	/**
	 * The token containing the file name in the include directive that named
	 * the file. Will be null for the original file (which wasn't included from
	 * anything).
	 */
	private CivlcToken includeToken;

	public CommonInclusion(SourceFile file) {
		assert file != null;
		this.file = file;
		this.includeToken = null;
	}

	public CommonInclusion(SourceFile file, CivlcToken includeToken) {
		assert file != null;
		this.file = file;
		this.includeToken = includeToken;
	}

	@Override
	public String suffix() {
		if (includeToken != null)
			return " included from " + includeToken.getSourceFile().getName()
					+ ":" + includeToken.getLine();
		else
			return "";
	}

	@Override
	public SourceFile getLastFile() {
		return file;
	}

	@Override
	public SourceFile getFile() {
		return file;
	}

	@Override
	public CivlcToken getIncludeToken() {
		return includeToken;
	}

}