import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.http.HttpServlet;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class TraitMetier extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
    public TraitMetier() {
        super();
    }
    
    public static boolean existe(String nomFile, String login, String mdp)
	{
		boolean exist=false;
		
		try
		{
			ArrayList<String> logins = new ArrayList<String>();
			ArrayList<String> mdps = new ArrayList<String>();

			DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();

			fabrique.setIgnoringComments(true);
			fabrique.setNamespaceAware(false);

			DocumentBuilder constructeur = fabrique.newDocumentBuilder();
			
			File xml = new File(nomFile);
			Document document = constructeur.parse(xml);
			
			Element racine = document.getDocumentElement();
			NodeList personneN = racine.getElementsByTagName("personne");
			for(int i=0;i<personneN.getLength();i++){
				Element noeud = (Element) personneN.item(i);
				String log = noeud.getAttribute("login");
				NodeList info2 = noeud.getChildNodes();
				ArrayList<String> tab = new ArrayList<String>();				
				
				for(int j=1; j<info2.getLength(); j=j+2)
				{	
					tab.add(info2.item(j).getTextContent());
				}
				logins.add(log);
				mdps.add(tab.get(0));
			}			
			
			for (int k=0;k<logins.size(); k++){
				if (login.equals(logins.get(k)) && mdp.equals(mdps.get(k))){
					exist=true;
				}
			}			
			
		}
		catch(ParserConfigurationException pce)
		{
			System.out.println("Erreur de configuration du parseur DOM");
			System.out.println("lors de l'appel à fabrique.newDocumentBuilder();");
		}
		catch(SAXException se)
		{
			System.out.println("Erreur lors du parsing du document");
			System.out.println("lors de l'appel à construteur.parse(xml)");
		}
		catch(IOException ioe)
		{
			System.out.println("Erreur d'entrée/sortie");
			System.out.println("lors de l'appel à construteur.parse(xml)");
		}
		return exist;
	}
	
	public boolean getValid(String login, String mdp){
		boolean test;
		String nomFile = "C:/Documents and Settings/Administrator/Desktop/Cours 2/Semestre 1/Eclipse/TP7/bdd.xml";
		test = existe(nomFile,login,mdp);
		return test;
	}	
	
}
