import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import java.io.File;
import java.io.IOException;
import org.jdom.JDOMException;
import org.jdom.Element;
import java.util.List;
import java.util.Iterator;
import org.jdom.output.XMLOutputter;
import java.io.FileOutputStream;
import org.jdom.filter.ElementFilter;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: </p>
 * @author Pham Thuy Van
 * @version 1.0
 */
public class LDL1 {
  public LDL1() {
  }
  static private void metadonnees(Element node, Element destNode){
	  Element tmp1 = new Element("metadonnees");
	  
	  Element destChild = new Element("uid");
	  destChild.addContent(node.getName());
	  tmp1.addContent(destChild);

	  destChild = new Element("title");
	  destChild.addContent(node.getAttributeValue("id"));
	  tmp1.addContent(destChild);
	  
	  destChild = new Element("description");
	  destChild.addContent("Scenario TPLec en methode Pleiade");
	  tmp1.addContent(destChild);
	  
	  destChild = new Element("author");
	  destChild.addContent("Jean Pierre David, Emmanuelle, Gabli, Pham");
	  tmp1.addContent(destChild);
	  
	  destChild = new Element("goal");
	  tmp1.addContent(destChild);
	  
	  destChild = new Element("target");
	  tmp1.addContent(destChild);
	  
	  destNode.addContent(tmp1);
  }
  
  static private void roles(Element node, Element destNode){
	  Iterator children = node.getDescendants(new ElementFilter("role"));
	  String []list_role = new String [100];
	  int i  = 0;
	  while(children.hasNext()){
		  Element nextElement = (Element)children.next();
		  i++;
		  list_role[i]= nextElement.getValue();
	  }		
	  compaire((list_role),i);
	  for (int j=1;j<=i;j++){
		  if(list_role[j]!=""){
			  Element role = new Element("Role");
			  role.setAttribute("id",deleteEspaces(list_role[j]));
			  Element title= new Element("title");
			  title.addContent(list_role[j]);
			  role.addContent(title);
			  destNode.addContent(role);
		  }
	  }
  }
  
  static private void enceinte(Element node, Element destNode){
	  Iterator children = node.getDescendants(new ElementFilter("title"));
	  String []list_contenu = new String [100];
	  Element []list_folder=new Element [10];
	  String []list_URL = new String [100];
	  String []list_Type = new String [100];
	  int i = 0;
	  int j=0;
	  int k =0;
	  int l = 0;
	  while(children.hasNext()){
		  Element nextElement = (Element)children.next();
		  if(!nextElement.getParentElement().getName().equals("title")& nextElement.getChild("title")== null){
			  i++;
			  list_contenu[i]= nextElement.getValue();
			  if(nextElement.getAttributeValue("URL")!=null){
				  list_URL[i] = file_name((nextElement.getAttributeValue("URL")));
			  }
			  if(nextElement.getParentElement().getAttributeValue("type")!=null){
				  list_Type[i]= nextElement.getParentElement().getAttributeValue("type");
			  }
			  else if (nextElement.getAttributeValue("type")!=null){
				  list_Type[i]=nextElement.getAttributeValue("type");
			  }
			  else list_Type[i]="";
		  }
		  else if (nextElement.getAttributeValue("type").equals("folder")){
			  l++;
			
			  list_folder[l] = new Element("Enceinte");
			  list_folder[l].setAttribute("id",deleteEspaces(nextElement.getAttributeValue("id")));
			  list_folder[l].setAttribute("kindOfEnceinte","folder");
			  Element list_folder_2 = new Element ("title");
			  list_folder_2.addContent(nextElement.getAttributeValue("id"));
			  list_folder[l].addContent(list_folder_2);
			  list_folder_2 = new Element ("description");
			  list_folder_2.addContent(nextElement.getAttributeValue("id"));
			  list_folder[l].addContent(list_folder_2);
			
			  List list_doc = nextElement.getChildren("title");
			  Iterator m = list_doc.iterator();
			  
			  while(m.hasNext()){
				  Element doc = (Element)m.next();
				  Element enceinte = new Element("Enceinte");
				  enceinte.setAttribute("id",deleteEspaces(doc.getValue()));
				  System.out.println("type file :"+doc.getAttributeValue("type"));
				  System.out.println("type file :"+doc.getAttributeValue("type"));
				  enceinte.setAttribute("kindOfEnceinte",doc.getAttributeValue("type"));
				  Element title = new Element ("title");
				  title.addContent(doc.getValue());
				  enceinte.addContent(title);
				  title = new Element ("description");
				  enceinte.addContent(title);
				  title = new Element ("source");
				  Element url = new Element ("URL");
				  if(doc.getAttributeValue("URL")!=null){
					  url.addContent(file_name(doc.getAttributeValue("URL")));
				  }
				  title.addContent(url);
				  enceinte.addContent(title);
				  list_folder[l].addContent(enceinte);
			  }
		  }
	  }
	  
	  for (j=1;j<=l ;j++){
		   for(k=l;k>j;k--){
			   if (list_folder[j].getAttributeValue("id").equals(list_folder[k].getAttributeValue("id"))){
				   list_folder[j]=null;

				   break;
			   }
		   }
	  }
	  compaire(list_contenu,i);
	  for (j=1;j<=i;j++){
		  if(list_contenu[j]!=""){
			  Element enceinte = new Element("Enceinte");
			  enceinte.setAttribute("id",deleteEspaces(list_contenu[j]));
			  if(list_Type[j]!=null){
				   enceinte.setAttribute("kindOfEnceinte",list_Type[j]);
			  }
			  Element title = new Element ("title");
			  title.addContent(list_contenu[j]);
			  enceinte.addContent(title);
			  title = new Element ("description");
			  enceinte.addContent(title);
			  title = new Element ("source");
			  Element url = new Element ("URL");
			  if(list_URL[j]!=null){
				  url.addContent(list_URL[j]);
			  }
			  title.addContent(url);
			  enceinte.addContent(title);
			  destNode.addContent(enceinte);
		   }
	   }
	  for (j=1;j<=l;j++){
		  if(list_folder[j]!=null){
			  destNode.addContent(list_folder[j]);
		   }
	   }
  }
  
  static private void interaction(Element node1, Element destNode1){
	  Iterator children1 = node1.getDescendants(new ElementFilter("Activite"));
	 
	  while(children1.hasNext()){
		  
		  Element nextElement = (Element)children1.next();
		  
		  Element interaction = new Element ("Interaction");
		  if(nextElement.getAttribute("id")!=null){
			  interaction.setAttribute("id",deleteEspaces(nextElement.getAttributeValue("id")));
		  }
		  Element dans = new Element ("dans");
		  if(nextElement.getChild("Elémentssupports")!=null){
			  if(nextElement.getChild("Elémentssupports").getChild("ressource")!=null){
			    if(nextElement.getChild("Elémentssupports").getChild("ressource").getChild("title")!=null){
					  if(nextElement.getChild("Elémentssupports").getChild("ressource").getChild("title").getValue()!=null & !nextElement.getChild("Elémentssupports").getChild("ressource").getChild("title").getAttributeValue("type").equals("folder")){
						  dans.addContent(deleteEspaces(nextElement.getChild("Elémentssupports").getChild("ressource").getChild("title").getValue()));
					  }
					  else dans.addContent(deleteEspaces(nextElement.getChild("Elémentssupports").getChild("ressource").getChild("title").getAttributeValue("id")));
				  }
			  }
			/*if(nextElement.getChild("Elémentssupports").getChild("produit")!=null){
			    if(nextElement.getChild("Elémentssupports").getChild("produit").getChild("title")!=null){
					  if(nextElement.getChild("Elémentssupports").getChild("produit").getChild("title").getValue()!=null& !nextElement.getChild("Elémentssupports").getChild("produit").getChild("title").getAttributeValue("type").equals("folder")){
						  dans.addContent(deleteEspaces(nextElement.getChild("Elémentssupports").getChild("produit").getChild("title").getValue()));
					  }
					  else dans.addContent(deleteEspaces(nextElement.getChild("Elémentssupports").getChild("produit").getChild("title").getAttributeValue("id")));
				  }
			  }*/
		  
		  else if(nextElement.getChild("Elémentssupports").getChild("service")!=null){
			    if(nextElement.getChild("Elémentssupports").getChild("service").getChild("title")!=null){
					  if(nextElement.getChild("Elémentssupports").getChild("service").getChild("title").getValue()!=null){
						  dans.addContent(deleteEspaces(nextElement.getChild("Elémentssupports").getChild("service").getChild("title").getValue()));
					  }
					 
				  }
			  }
		  }
		  Element action = new Element ("action");
		  if(nextElement.getAttributeValue("id")!=null){
			  action.addContent((nextElement.getAttributeValue("id")));
		  }
		  Element destinateurs = new Element("destinateurs");
		  if(nextElement.getChild("Distribution")!=null){
			  Element distribution = nextElement.getChild("Distribution");
			  List list_tmp = distribution.getChildren();
			  Iterator i = list_tmp.iterator();
			  while (i.hasNext()){
				  Element tmp = (Element)i.next();
				  Element test = new Element("role");
				  test.addContent(tmp.getValue());
				  destinateurs.addContent(test);
			  }
		  }
		  Element results = new Element("results");
		  interaction.addContent(action);
		  interaction.addContent(dans);
		  interaction.addContent(destinateurs);
		  Element destinataires = new Element("destinataires");
		  interaction.addContent(destinataires);
		  interaction.addContent(results);
		  Element startOn = new Element ("startOn");
		  Element rule = new Element ("Rule");
		  rule.setAttribute("id",deleteEspaces(nextElement.getAttributeValue("id"))+"_StartOn");
		  Element si = new Element ("si");
		  Element exprCondi = new Element("ExprConditionnelle");
		  Element exprCond = new Element("exprCond");
		  exprCond.addContent(deleteEspaces("condition_Start_"+nextElement.getAttributeValue("id")));
		  exprCondi.addContent(exprCond);
		  Element condi = new Element("Condition");
		  condi.setAttribute("id","condition_Start_"+deleteEspaces(nextElement.getAttributeValue("id")));
		  Element laPosition = new Element("laPosition");
		  laPosition.addContent("Start"+deleteEspaces(nextElement.getAttributeValue("id")));
		  condi.addContent(laPosition);
		  laPosition = new Element("comp");
		  laPosition.addContent("equalTo");
		  condi.addContent(laPosition);
		  laPosition = new Element("val");
		  laPosition.addContent("1");
		  condi.addContent(laPosition);
		  exprCondi.addContent(condi);
		  
		  si.addContent(exprCondi);
		  rule.addContent(si);
		  startOn.addContent(rule);
		  interaction.addContent(startOn);
		  		  
		  Element terminateOn = new Element ("terminateOn");
		  rule = new Element ("Rule");
		  rule.setAttribute("id",deleteEspaces(nextElement.getAttributeValue("id"))+"_terminateOn");
		  si = new Element ("si");
		  exprCondi = new Element("ExprConditionnelle");
		  exprCond = new Element("exprCond");
		  exprCond.addContent(deleteEspaces("condition_Stop_"+nextElement.getAttributeValue("id")));
		  exprCondi.addContent(exprCond);
		  condi = new Element("Condition");
		  condi.setAttribute("id","condition_Stop_"+deleteEspaces(nextElement.getAttributeValue("id")));
		  laPosition = new Element("laPosition");
		  laPosition.addContent("Executer"+ deleteEspaces(nextElement.getAttributeValue("id")));
		  condi.addContent(laPosition);
		  /*laPosition = new Element("comp");
		  laPosition.addContent("equalTo");
		  condi.addContent(laPosition);
		  laPosition = new Element("val");*/
		  if(nextElement.getChild("Conditiondeclôture").getAttributeValue("type").equals("TimeLimit")){
			  laPosition = new Element("comp");
			  laPosition.addContent("lessOrEqualThan");
			  condi.addContent(laPosition);
			  laPosition = new Element("val");
			  laPosition.addContent("0");  
			  System.out.println("Timelimite");
		  }else if(nextElement.getChild("Conditiondeclôture").getAttributeValue("type").equals("UserChoice")){
			  laPosition = new Element("comp");
			  laPosition.addContent("equalTo");
			  condi.addContent(laPosition);
			  laPosition = new Element("val");
			  laPosition.addContent("1");
			  System.out.println("UserChoice");
		  }else if(nextElement.getChild("Conditiondeclôture").getAttributeValue("type").equals("Observation"))
		  {
			  laPosition = new Element("comp");
			  laPosition.addContent("equalTo");
			  condi.addContent(laPosition);
			  laPosition = new Element("val");
			  laPosition.addContent("'Rep1'");
			  System.out.println("Observation");
		  }
		  else{
			  laPosition = new Element("comp");
			  laPosition.addContent("equalTo");
			  condi.addContent(laPosition);
			  laPosition = new Element("val");
			  laPosition.addContent("1");
		  }
		  //il reste encore un cas
		  condi.addContent(laPosition);
		  exprCondi.addContent(condi);
		  
		  si.addContent(exprCondi);
		  rule.addContent(si);
		  terminateOn.addContent(rule);
		  interaction.addContent(terminateOn);
		  
		  destNode1.addContent(interaction);
	  }
  }

  static private void structure(Element node, Element destNode) {
	  List children = node.getChildren();
      Iterator itor = children.iterator();
      while (itor.hasNext()) {
        Element child = (Element) itor.next();
        Element destChild = destNode;
        
        if (child.getName().equals("Regroupement")) {
        	System.out.println("Regroupement: "+ child.getAttributeValue("id"));
        	destChild = new Element("Structure");
        	if(child.getAttributeValue("id")!=null){
        		destChild.setAttribute("id",deleteEspaces(child.getAttributeValue("id")));
        		if(child.getChild("proprietes")!=null){
        			if(child.getChild("proprietes").getChild("Orchestration")!=null){
        				if(child.getChild("proprietes").getChild("Orchestration").getAttribute("id")!=null){
        					destChild.setAttribute("kindOfStructure",child.getChild("proprietes").getChild("Orchestration").getAttributeValue("id"));
        				}
        			}
        		}
        	}
        	Element startOn = new Element ("startOn");
  		  	Element rule = new Element ("Rule");
  		  	rule.setAttribute("id",deleteEspaces(child.getAttributeValue("id"))+"_StartOn");
  		  	Element si = new Element ("si");
  		  	Element expresCondi = new Element("ExprConditionnelle");
  		  	Element exprCond = new Element("exprCond");
  		  	exprCond.addContent(deleteEspaces("condition_Start_"+child.getAttributeValue("id")));
  		  	expresCondi.addContent(exprCond);
  		  	Element condi = new Element("Condition");
  		  	condi.setAttribute("id",deleteEspaces("condition_Start_"+child.getAttributeValue("id")));
  		  	Element laPosi = new Element("laPosition");
  		  	laPosi.addContent("Executer"+deleteEspaces(child.getAttributeValue("id")));
  		  	condi.addContent(laPosi);
  		  	laPosi = new Element("comp");
  		  	laPosi.addContent("equalTo");
  		  	condi.addContent(laPosi);
  		  	laPosi = new Element("val");
  		  	laPosi.addContent("1");
  		  	condi.addContent(laPosi);
  		  	expresCondi.addContent(condi);
  		  	si.addContent(expresCondi);
  		  	rule.addContent(si);
  		  	startOn.addContent(rule);
  		  	destChild.addContent(startOn);
  		  	if(child.getChild("Constituants")!=null){
  		  		Element constituant = child.getChild("Constituants");
  		  		if(constituant.getChildren()!=null){
  		  			List list_Act = constituant.getChildren("Activite");
  		  			Iterator j = list_Act.iterator();
  		  			while(j.hasNext()){
  		  				Element Act = (Element)j.next();
  		  				if(Act.getAttribute("id")!=null){
  		  					Element destChild_tmp = new Element("interaction_id");
  		  					destChild_tmp.addContent(deleteEspaces(Act.getAttributeValue("id")));
  		  					destChild.addContent(destChild_tmp);
  		  				}
  		  			}
  		  		}
  		  	}
  		  	destNode.addContent(destChild);
        }
  	    structure(child, destChild);
      }
  }
  static private void rule(Element destNode){
	  Element destChild = new Element("rules");
	  destNode.addContent(destChild);
  }

  static private void positions(Element node, Element destNode) {
	  Iterator children = node.getDescendants(new ElementFilter("Conditiondeclôture"));
	  while(children.hasNext()){
		  Element nextElement = (Element)children.next();
		
		  //la Position de Start Activite
		  if(nextElement.getParentElement().getName().equals("Activite")){
			  Element position = new Element ("Position");
			  position.setAttribute("id","Start"+ deleteEspaces(nextElement.getParentElement().getAttributeValue("id")));
			  Element title = new Element("title");
			  title.addContent(nextElement.getParentElement().getAttributeValue("id"));
			  position.addContent(title);
			  Element sur;
			  if(nextElement.getParentElement().getChild("Elémentssupports").getChild("service")!=null){
				   sur = new Element("sur");
				  if (nextElement.getParentElement().getChild("Elémentssupports").getChild("service").getChild("title").getValue()!=null){
					  sur.addContent(deleteEspaces(nextElement.getParentElement().getChild("Elémentssupports").getChild("service").getChild("title").getValue()));
					  position.addContent(sur);
				  }
			  }
			  if (nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource")!=null){
				  sur = new Element("sur");
					if(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getAttribute("type")!=null){
						if(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getAttributeValue("type").equals("folder")){
							sur.addContent(deleteEspaces(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getAttributeValue("id")));
						}
						else {
							sur.addContent(deleteEspaces(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getValue()));
						}
						position.addContent(sur);
				  }
			  }
			  else position.addContent(new Element("sur"));
			  
			  if(nextElement.getParentElement().getChild("Distribution").getChildren()!=null){
				  List listRole = nextElement.getParentElement().getChild("Distribution").getChildren();
				  Iterator j = listRole.iterator();
				  while(j.hasNext()){
					  Element de = new Element("de");
					  Element role = (Element)j.next();
					  de.addContent(role.getValue());
					  position.addContent(de);
				  }
			  }
			  Element portee = new Element ("portee");
			  portee.addContent("activite");
			  position.addContent(portee);
			  Element valeur = new Element("valeur");
			  Element Float = new Element("Float");
			  Float.addContent("1");
			  valeur.addContent(Float);
			  position.addContent(valeur);
			  destNode.addContent(position);
		  }
		  Element position = new Element ("Position");
		  if(nextElement.getParentElement().getName().equals("proprietes")){
			  position.setAttribute("id","Executer"+ deleteEspaces(nextElement.getParentElement().getParentElement().getAttributeValue("id")));
			  Element title = new Element("title");
			  title.addContent(nextElement.getParentElement().getParentElement().getAttributeValue("id"));
			  position.addContent(title);
		  }else{
			  position.setAttribute("id","Executer"+ deleteEspaces(nextElement.getParentElement().getAttributeValue("id")));
			  Element title = new Element("title");
			  title.addContent(nextElement.getParentElement().getAttributeValue("id"));
			  position.addContent(title);
		  }
			  Element sur;
			  if(nextElement.getParentElement().getChild("Elémentssupports").getChild("service")!=null){
				   sur = new Element("sur");
				  if (nextElement.getParentElement().getChild("Elémentssupports").getChild("service").getChild("title").getValue()!=null){
					  sur.addContent(deleteEspaces(nextElement.getParentElement().getChild("Elémentssupports").getChild("service").getChild("title").getValue()));
					  position.addContent(sur);
				  }
			  }
			  if (nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource")!=null){
				  sur = new Element("sur");
					if(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getAttribute("type")!=null){
						if(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getAttributeValue("type").equals("folder")){
							sur.addContent(deleteEspaces(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getAttributeValue("id")));
						}
						else {
							sur.addContent(deleteEspaces(nextElement.getParentElement().getChild("Elémentssupports").getChild("ressource").getChild("title").getValue()));
						}
						position.addContent(sur);
				  }
			  }
			  else position.addContent(new Element("sur"));
			  
			  if(nextElement.getParentElement().getChild("Distribution").getChildren()!=null){
				  List listRole = nextElement.getParentElement().getChild("Distribution").getChildren();
				  Iterator j = listRole.iterator();
				  while(j.hasNext()){
					  Element de = new Element("de");
					  Element role = (Element)j.next();
					  de.addContent(role.getValue());
					  position.addContent(de);
				  }
			  }
			  Element portee = new Element ("portee");
			  portee.addContent("activite");
			  position.addContent(portee);
			  Element valeur = new Element("valeur");
			  if(nextElement.getAttributeValue("type").equals("TimeLimit")&& nextElement.getParentElement().getChild("Granularité").getValue().equals("Etoile")){
				  Element timelimit = new Element ("TimeLimit");
				  Element delay = new Element ("delay");
				  delay.addContent(time(nextElement.getParentElement().getChild("Temps").getValue()));
				  timelimit.addContent(delay);
				  valeur.addContent(timelimit);
			  }
			  else if(nextElement.getAttributeValue("type").equals("UserChoice")){
				  Element UserChoice = new Element ("UserChoice");
				  Element label = new Element ("label");
				  label.addContent(nextElement.getAttributeValue("id"));
				  UserChoice.addContent(label);
				  valeur.addContent(UserChoice);
				 }
			  else if (nextElement.getAttributeValue("type").equals("Observation")){
				  Element Observer = new Element("Observer");
				  Observer.setAttribute("id","Obs");
				  Observer.addContent(nextElement.getAttributeValue("id"));
				  valeur.addContent("Observer");
			  }
			  else {
				  Element Float = new Element("Float");
				  Float.addContent("1");
				  valeur.addContent(Float);
			  }
			  position.addContent(valeur);
			  destNode.addContent(position);
	  }
	  
  }
  public static void main(String[] args) {
	    try {
	    	 String url = "testPleiade.xml";
	         String destFileName = "testLDL2.xml";
	         SAXBuilder builder = new SAXBuilder();
	         Document doc = builder.build(new File(url));
	         Element root = doc.getRootElement();
	         Element destElementRoot = new Element("Scenario");
	         destElementRoot.setAttribute("xsinoNamespaceSchemaLocation","http://ld.pentila.com/download/ldl-v1-2.xsd");
	         Document destDocument = new Document(destElementRoot);
	         destDocument.setRootElement(destElementRoot);
	         
	   	  	metadonnees(root,destElementRoot);
	      
	   	  	Element roles = new Element ("roles");
	   	  	destElementRoot.addContent(roles);
	   	  	roles(root,destElementRoot.getChild("roles"));
	      
	   	  	Element enceins = new Element ("enceintes");
	   	  	destElementRoot.addContent(enceins);
	   	  	enceinte(root,destElementRoot.getChild("enceintes"));
	
	   	  	Element interactions = new Element ("interactions");
	   	  	destElementRoot.addContent(interactions);
	   	  	interaction(root,destElementRoot.getChild("interactions"));
	
		  	Element structures = new Element ("structures");
	   	  	destElementRoot.addContent(structures);
	   	  	structure(root,destElementRoot.getChild("structures"));
	   	  	
	   	  	rule(destElementRoot);
	   	  	
	   	  	Element positions = new Element ("positions");
	   	  	destElementRoot.addContent(positions);
	   	  	positions(root,destElementRoot.getChild("positions"));
	   	  	
	   	  	
	        XMLOutputter outputter = new XMLOutputter();
	        outputter.output(destDocument, new FileOutputStream(destFileName));

	       } catch (IOException e) {
	         e.printStackTrace();
	       } catch (JDOMException e) {
	         e.printStackTrace();
	       }
  }
	  static String file_name(String s)
	  {
	  	StringBuilder resul = new StringBuilder();
	  	StringBuilder resultat = new StringBuilder();
	  	int length = s.length();
	  	int j = 0;
	  	if(s.indexOf("www")== -1&s.indexOf("http")== -1){
	  	  	int i=length-1;
	  	  	while(i>0&s.charAt(i)!='/'){
	  	  		resul.append(s.charAt(i));
	  	  		i--;
	  	  		j++;
	  	  	}
	  	}
	  	if(j!=0){
	  		for (int k=j-1;k>=0;k--){
	  			resultat.append(resul.charAt(k));
	  		}
	  		return resultat.toString();
	  	}
	  	else return s;
	  }
	  static String deleteEspaces(String s)
	  {
	  	StringBuilder resulta = new StringBuilder();
	  	int length = s.length();
	  	for (int i=0; i<length;i++)
	  	{
	  		char ch = s.charAt(i);
	  		if ( ch!= '1'& ch!='2'& ch!='3'& ch!='4'& ch!= '5'& ch!='6'&ch!='7'& ch!='8'& ch!='9'&ch!='0' &ch !='.' &(char)ch!=39 )
	  		{
	  			if(ch=='é'|ch == 'è'| ch == 'ê'){
	  				ch = 'e';
	  			}
	  			if(ch=='ô'){
	  				ch = 'o';
	  			}
	  			if(ch=='à'){
	  				ch = 'a';
	  			}
	  			if(ch=='ç'){
	  				ch = 'c';
	  			}
	  			if(ch == ' '){
	  				ch = '_';
	  			}
	  			resulta.append(ch);
	  		}
	  	}
	  		return resulta.toString();
	  }
	  static String time(String s)
	  {
	  	StringBuilder tmp = new StringBuilder();
	  	int length = s.length();
	  	for (int i=0; i<length;i++)
	  	{
	  		char ch = s.charAt(i);
	  		if ( ch== '1'| ch=='2'| ch=='3'| ch=='4'| ch== '5'| ch=='6'|ch =='7'| ch=='8'| ch=='9'|ch=='0')
	  		{
	  			tmp.append(ch);
	  		}
	  	}
	  	int time = Integer.valueOf(tmp.toString()).intValue();
	  	time = time*60;
	  	String resultat = ""+time;
	  	return resultat;
	  	
	  }
	  static void compaire(String []str, int i){
		  for (int j=1;j<=i ;j++){
			   for(int k=i;k>j;k--){
				   if (str[j].equals(str[k])){
					   System.out.println("contenu : " + str[j]);
					   str[j]="";
					   break;
				   }
			   }
		  }
		  
	  }
}