Skip to content
LDASTNodeInfo.java 2.15 KiB
Newer Older
package edg;

import java.util.Arrays;

public class LDASTNodeInfo
{
	private String file;
	private String className;
	private final long line;
	private final String construction;
	private final boolean isExpression;
	private Object[] info;

	public LDASTNodeInfo(long line, String construction, Object... info)
	{
		this(null, null, line, false, construction, info);
	}
	public LDASTNodeInfo(long line, boolean expression, String construction,  Object... info)
	{
		this(null, null, line, expression, construction, info);
	}
	public LDASTNodeInfo(String file, long line, String construction, Object... info)
	{
		this(file, null, line, false, construction, info);
	}
	public LDASTNodeInfo(String file, long line, boolean expression, String construction, Object... info)
	{
		this(file, null, line, expression, construction, info);
	}
	public LDASTNodeInfo(String file, String className, long line, String construction, Object... info)
	{
		this(file, className, line, false, construction, info);
	}
	public LDASTNodeInfo(String file, String className, long line, boolean expression, String construction, Object... info)
	{
		this.file = file;
		this.className = className;
		this.line = line;
		this.construction = construction;
		this.isExpression = expression;
		this.info = info;
	}

	public LDASTNodeInfo(LDASTNodeInfo info, boolean expression) {
		this(info.file, info.className, info.line, expression, info.construction, Arrays.copyOf(info.info, info.info.length));
	}

	public String getFile()
	{
		return this.file;
	}
	public String getClassName()
	{
		return this.className;
	}
	public long getLine()
	{
		return this.line;
	}
	public String getConstruction()
	{
		return this.construction;
	}
	public boolean isExpression()
	{
		return this.isExpression;
	}
	public Object[] getInfo()
	{
		return this.info;
	}
	public void setFile(String file)
	{
		this.file = file;
	}
	public void setClassName(String className)
	{
		this.className = className;
	}
	public void addInfo(Object o)
	{
		int lastIndex = this.info.length;
		Object[] newInfo = new Object[lastIndex+1];
		for (int i = 0; i < lastIndex; i++)
			newInfo[i] = this.info[i];
		newInfo[lastIndex] = o;
		this.info = newInfo;
	}
}