CommonConcatenation.java

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

import java.util.ArrayList;

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

public class CommonConcatenation implements Concatenation {

	private ArrayList<CivlcToken> constituents;

	public CommonConcatenation(ArrayList<CivlcToken> constituents) {
		assert constituents != null;
		assert constituents.size() >= 1;
		this.constituents = constituents;
	}

	@Override
	public String suffix() {
		String result = " from concatenation of the following "
				+ getNumConstituents() + " tokens:";

		for (CivlcToken token : constituents)
			result += "\n" + token;
		return result;
	}

	@Override
	public SourceFile getLastFile() {
		return constituents.get(0).getSourceFile();
	}

	@Override
	public int getNumConstituents() {
		return constituents.size();
	}

	@Override
	public CivlcToken getConstituent(int index) {
		return constituents.get(index);
	}

}