package iitb.cfilt.cpost.ngi;
import java.util.Vector;
import iitb.cfilt.cpost.dmstemmer.MAResult;
import iitb.cfilt.cpost.dmstemmer.NewStemmer;

public class NgiResult 
{
	private Vector<String> postags;
	private String Token;
	private String assignedTag;
	private String finalTag;
	private int set;
	private boolean changed;
	public NgiResult()
	{
		postags = new Vector<String>();
		Token = new String();
		assignedTag = new String();
		finalTag = new String();
		set = 5;
		changed = false;
	}
	public NgiResult(MAResult maresult)
	{
		setpostags(maresult);
		setToken(maresult.getToken());
	}
	public NgiResult(String Token)
	{
		setpostags(Token);
		setToken(Token);
	}
	public Vector<String> getpostags()
	{
		return postags;
	}
	public String getToken()
	{
		return Token;
	}
	public String getassignedTag()
	{
		return assignedTag;
	}
	public String getfinaltag()
	{
		return finalTag;
	}
	public int getset()
	{
		return set;
	}
	public boolean getchanged()
	{
		return changed;
	}
	public void setpostags(MAResult maresult)
	{
		for(int i=0;i<maresult.getMorphOutputs().size();i++)
			postags.add(maresult.getMorphOutputs().get(i).getStemmerResult().getCategory());
	}
	public void setpostags(String Token)
	{
		NewStemmer dmstemmer = new NewStemmer();
		MAResult maresult= dmstemmer.stem(Token);
		for(int i=0;i<maresult.getMorphOutputs().size();i++)
			postags.add(maresult.getMorphOutputs().get(i).getStemmerResult().getCategory());
	}
	public void setpostags(Vector<String> postags)
	{
		this.postags = postags;
	}
	public void setToken(String Token)
	{
		this.Token = Token;
	}
	public void setassignedTag(String assignedTag)
	{
		this.assignedTag = assignedTag;
	}
	public void setfinalTag(String finalTag)
	{
		this.finalTag = finalTag;
	}
	public void setset()
	{
		if(!assignedTag.isEmpty())
		{
			if((assignedTag.equals("DEM")) || (assignedTag.equals("INTF")) || (assignedTag.equals("QF")) || (assignedTag.equals("QO")) || (assignedTag.equals("QC")))
				set = 1;
			else if(assignedTag.equals("JJ"))
				set = 2;
			else if((assignedTag.equals("NN")) || (assignedTag.equals("NNP")) || (assignedTag.equals("PRP")))
				set = 3;
			else if(assignedTag.equals("PSP"))
				set = 4;
			else
				set = 5;
		}
		else
			set = 5;
	}
	public void setchanged(boolean changed)
	{
		this.changed = changed;
	}
	public void println()
	{
		System.out.println("Token : " + Token + "\tOld Tag : " + assignedTag + "\tNew Tag : " + finalTag + "\tchanged : " + changed);
	}
}
