package iitb.cfilt.cpost.ngi;

import iitb.cfilt.cpost.dmstemmer.*;
import java.util.Vector;

public class NounGroupIdentifier3 
{
	Vector<NgiResult> ngioutput;
	int ngiState;
		
	public NounGroupIdentifier3()
	{
		ngioutput = new Vector<NgiResult>();
		ngiState = 0; // Signifies that noun group has not begun
	}
	
	public void nounGroupIdentify(Vector<MAResult> maresultv, Vector<String> assignedtags)
	{
		for(int i=0;i<maresultv.size();i++)
			ngioutput.add(new NgiResult(maresultv.get(i),assignedtags.get(i)));
		
		ngiState = 0;
		int i = maresultv.size()-1;
		while((i>=0) && ((ngiState==0) || (ngiState==7)))
		{
			
			NgiResult nr = ngioutput.get(i);
			if(nr.getset()==4)
			{
				ngiState = 1; // Signifies that oblique noun group has started 
			}
			else if(nr.getset()==3)
			{
				ngiState = 2; // Signigies that direct noun group has started
			}
			else if(nr.getassignedTag().equals("DEM"))
			{
				nr.setfinalTag("PRP");
				nr.setchanged(true);
				ngiState = 2;
			}
			
			if(ngiState==1)
			{
				i--;
				nr = ngioutput.get(i);
				if(nr.getset()!=3)
				{
					if(nr.getpostags().contains("noun"))
					{
						
					}
				}
			}
				
		}
	}
	
	public void printfinaltags()
	{
		for (int i=0;i<ngioutput.size();i++)
		{
			NgiResult ngiresult = ngioutput.get(i);
			ngiresult.println();
		}
			
	}
}
