Example usage for org.jdom2 Element getChild

List of usage examples for org.jdom2 Element getChild

Introduction

In this page you can find the example usage for org.jdom2 Element getChild.

Prototype

public Element getChild(final String cname) 

Source Link

Document

This returns the first child element within this element with the given local name and belonging to no namespace.

Usage

From source file:cager.parser.test.SimpleTest3.java

License:Open Source License

private void trataNodo(SimpleNode astNode, Element segmento, int nivel, String contexto) {

    int numChildren = astNode.jjtGetNumChildren();
    //TODO Solucionar referencias a Namespaces 
    Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI");

    String contextoLocal = "";
    contextoLocal = contexto;// w  w  w. j a  v  a  2 s.c o m

    String strNombre = "";

    for (int i = 0; i < numChildren; i++) {

        strNombre = ((SimpleNode) astNode.jjtGetChild(i)).getName();

        if (astNode.jjtGetChild(i).getClass() == ASTProcDeclaration.class) {

            for (int j = 0; j < nivel; j++)
                System.out.print("\t");
            //logger.info("1. ->"+astNode.jjtGetChild(i).getClass().toString()+" - "+strNombre+" - "+" Nivel: "+nivel);
            System.out.println("1. ->" + astNode.jjtGetChild(i).getClass().toString() + " - " + strNombre
                    + " - " + " Nivel: " + nivel);

            Element codeElement = new Element("codeElement");
            codeElement.setAttribute("id", "id." + idCount, xmi);
            hsmMethodUnits.put(strNombre, idCount);
            hsmMethodUnitsObj.put(idCount, codeElement);
            contextoLocal = strNombre;
            idCount++;
            codeElement.setAttribute("name", strNombre);
            codeElement.setAttribute("type", "code:MethodUnit", xmi);
            //TODO: Comprobar que tipo de method es: Enumeration MethodKind
            codeElement.setAttribute("kind", "method");

            ASTProcDeclaration astProcDecl = (ASTProcDeclaration) astNode.jjtGetChild(i);
            String contenido = astProcDecl.allText(true);

            Element sourceElement = new Element("source");
            sourceElement.setAttribute("id", "id." + idCount, xmi);
            idCount++;
            sourceElement.setAttribute("language", "VisualBasic");
            sourceElement.setAttribute("snippet", contenido);

            codeElement.addContent(sourceElement);

            segmento.getChild("model").getChild("codeElement").addContent(codeElement);
            this.segmento = segmento;

            //<source xmi:id="id.41" language="Hla" snippet="Field5[1] -> Acc_Type[0]"/>

            //Buscar Parmetros para signature

            codeElement.addContent(TratarSignature((SimpleNode) astNode.jjtGetChild(i), strNombre));

        } else if (astNode.jjtGetChild(i) instanceof ASTName) {

            if (astNode instanceof ASTDeclare
                    && astNode.jjtGetChild(i).jjtGetParent().jjtGetChild(0).equals(astNode.jjtGetChild(i))) { //TODO: Revisar si esto es lgico.

                ASTDeclare astDeclare = (ASTDeclare) astNode;
                Element codeElement = new Element("codeElement");
                codeElement.setAttribute("id", "id." + idCount, xmi);
                hsmMethodUnits.put(strNombre, idCount);
                hsmMethodUnitsObj.put(idCount, codeElement);
                contextoLocal = strNombre;
                idCount++;
                codeElement.setAttribute("name", strNombre);
                codeElement.setAttribute("export", astDeclare.getFirstToken().toString().toLowerCase());
                codeElement.setAttribute("type", "code:MethodUnit", xmi);
                //TODO: Comprobar que tipo de method es: Enumeration MethodKind
                codeElement.setAttribute("kind", "method");

                String contenido = astDeclare.allText(true);

                Element sourceElement = new Element("source");
                sourceElement.setAttribute("id", "id." + idCount, xmi);
                idCount++;
                sourceElement.setAttribute("language", "VisualBasic");
                sourceElement.setAttribute("snippet", contenido);

                codeElement.addContent(sourceElement);

                segmento.getChild("model").getChild("codeElement").addContent(codeElement);
                this.segmento = segmento;

                //Buscar Parmetros para signature

                codeElement.addContent(TratarSignature(astNode, strNombre));

            } else if (astNode instanceof ASTVarDecl) {

                ASTDeclaration astDeclaration = null;
                String exportVal = null;
                if (astNode.jjtGetParent() instanceof ASTDeclaration) {
                    astDeclaration = (ASTDeclaration) astNode.jjtGetParent();
                    exportVal = astDeclaration.getFirstToken().toString().toLowerCase();
                }

                Element codeElement = new Element("codeElement");
                codeElement.setAttribute("id", "id." + idCount, xmi);
                String tipo = null;

                //Buscamos el tipo de la variable declarada recorriendo todos los hijos buscando el ASTTypeName
                for (int n = 0; n < astNode.jjtGetNumChildren() && tipo == null; n++) {
                    if (astNode.jjtGetChild(n) instanceof ASTTypeName) {
                        tipo = ((SimpleNode) ((SimpleNode) astNode.jjtGetChild(n)).jjtGetChild(0)).getName();
                    }
                }

                //Si no se ha encontrado comprobamos si es una declaracin mltiple y buscamos el tipo
                if (tipo == null) {

                    SimpleNode Padre = (SimpleNode) astNode.jjtGetParent();

                    for (int t = 0; t < Padre.jjtGetNumChildren() && tipo == null; t++) {

                        SimpleNode Hijo = (SimpleNode) Padre.jjtGetChild(t);

                        for (int n = 0; n < Hijo.jjtGetNumChildren(); n++) {

                            if (Hijo.jjtGetChild(n) instanceof ASTTypeName) {
                                tipo = ((SimpleNode) ((SimpleNode) Hijo.jjtGetChild(n)).jjtGetChild(0))
                                        .getName();
                            }

                        }

                    }

                }

                hsmStorableUnits.put(strNombre, idCount);
                hsmStorableUnitsObj.put(idCount, codeElement);

                Integer numeroTipo = hsmLanguajeUnitDataType.get(tipo);
                if (numeroTipo == null) {
                    numeroTipo = 13;
                }

                /*               
                if(numeroTipo == null){
                        
                  numeroTipo = idCount;
                  Element enumerated = new Element("codeElement");
                  enumerated.setAttribute("id", "id."+numeroTipo, xmi);
                  //enumerated.setAttribute("type", "code:ClassUnit", xmi);
                  enumerated.setAttribute("type", "code:StringType", xmi);
                  enumerated.setAttribute("name", tipo);
                  hsmLanguajeUnitDataType.put(tipo, numeroTipo);
                  idCount++;
                        
                                      
                  //Aadimos el enumerated a la lista de tipos
                  elementoTipos.addContent(enumerated);
                          
                }
                        
                */
                idCount++;
                codeElement.setAttribute("name", strNombre);
                //StorableUnit no permite atributo export
                //if(exportVal != null) codeElement.setAttribute("export", exportVal);
                codeElement.setAttribute("type", "code:StorableUnit", xmi);
                codeElement.setAttribute("type", "id." + numeroTipo);

                if (contextoLocal == "") {
                    codeElement.setAttribute("kind", "global");
                    segmento.getChild("model").getChild("codeElement").addContent(codeElement);
                    this.segmento = segmento;
                } else {
                    codeElement.setAttribute("kind", "local");
                    Element elementAux = hsmMethodUnitsObj.get(hsmMethodUnits.get(contextoLocal));//.getChild("codeElement");
                    elementAux.addContent(codeElement);
                }
            }
        }

        trataNodo((SimpleNode) astNode.jjtGetChild(i), segmento, nivel + 1, contextoLocal);

    }
}

From source file:cager.parser.test.SimpleTest3.java

License:Open Source License

private void trataExpressions(SimpleNode astAssignment, Element actionElement, int nivelAcumulado,
        Element segmento) {

    SimpleNode snHijo = new SimpleNode(0);
    String strNombre = "";

    actionElement.setAttribute("type", "action:ActionElement", xmi);

    if (this.debuggMode)
        actionElement.setAttribute("debug", astAssignment.toString());
    actionElement.setAttribute("name", "a" + idName);
    idName++;//from   w w  w .  j  a  va2 s .  c o  m

    String espacios = "";
    for (int j = 0; j < nivelAcumulado; j++)
        espacios += "    ";

    //Recorre todos los nodos del ASTAssignment 
    for (int k = 0; k < astAssignment.jjtGetNumChildren(); k++) {

        snHijo = (SimpleNode) astAssignment.jjtGetChild(k);

        //Tratamos el hijo ASTPrimaryExpresion
        if (snHijo instanceof ASTPrimaryExpression) {

            SimpleNode snNieto;

            //Recorre todos los hijos del ASTPrimaryExpression
            for (int l = 0; l < snHijo.jjtGetNumChildren(); l++) {

                snNieto = (SimpleNode) snHijo.jjtGetChild(l);
                String nombreCompleto = "";

                for (int m = 0; m < snHijo.jjtGetNumChildren(); m++) {
                    if (m > 0)
                        nombreCompleto += ".";
                    nombreCompleto += ((SimpleNode) snHijo.jjtGetChild(m)).getName();
                }

                //Comprobamos si se trata de un StorableUnit reconocido
                if (hsmStorableUnits.get(nombreCompleto) != null) {

                    //<actionRelation xmi:id="id.46" xmi:type="action:Writes" to="id.39"/>
                    Element actionRelation = new Element("actionRelation");
                    actionRelation.setAttribute("id", "id." + idCount, xmi);
                    idCount++;
                    actionRelation.setAttribute("type", "action:Writes", xmi);
                    actionRelation.setAttribute("to",
                            "id." + String.valueOf(hsmStorableUnits.get(nombreCompleto)));
                    actionRelation.setAttribute("from", "id." + idAction);

                    actionElement.addContent(actionRelation);

                    //TODO: Revisar qu hacemos con las referencias a tributos de Objetos (Objeto.atributo = ...) ASTName y ASTName
                    //salir 
                    //TODO: Tomamos solo uno de los ASTNames hasta que sepamos cmo hacer con las properties de un objeto.
                    break;

                } else {

                    //logger.info("Detectado un StorabeUnit nuevo!!!! Qu hacemos?");
                    System.out
                            .println("Detectado un StorabeUnit nuevo!!!! Que hacemos?: " + snNieto.getName());

                    //Optamos temporalmente por aadirlo como StorableUnit global.
                    //TODO: Revisar qu hacer en estos casos, ya que el parser no trata los "Begin"

                    //Comprobamos si a
                    Element codeElement = new Element("codeElement");
                    codeElement.setAttribute("id", "id." + idCount, xmi);

                    hsmStorableUnits.put(nombreCompleto, idCount);
                    hsmStorableUnitsObj.put(idCount, codeElement);

                    idCount++;
                    codeElement.setAttribute("name", nombreCompleto);
                    codeElement.setAttribute("type", "code:StorableUnit", xmi);
                    codeElement.setAttribute("type", "");

                    //codeElement.setAttribute("kind", "external");//TODO: Ver cmo tratar ste caso, variables utilizadas no definidas.
                    //Para MethodUnit no hay external
                    codeElement.setAttribute("kind", "unknown");

                    segmento.getChild("model").getChild("codeElement").addContent(codeElement);
                    //                     this.segmento = segmento;

                    //Aadimos el Action:Writes
                    //TODO: Qu hacemos con los properties de un objeto.
                    Element actionRelation = new Element("actionRelation");
                    actionRelation.setAttribute("id", "id." + idCount, xmi);
                    idCount++;
                    actionRelation.setAttribute("type", "action:Writes", xmi);
                    actionRelation.setAttribute("to",
                            "id." + String.valueOf(hsmStorableUnits.get(nombreCompleto)));
                    actionRelation.setAttribute("from", "id." + idAction);

                    actionElement.addContent(actionRelation);

                    //salir 
                    //TODO: Tomamos solo uno de los ASTNames hasta que sepamos cmo hacer con las properties de un objeto.
                    break;
                    //l=snHijo.jjtGetNumChildren();

                }

            } //FIN hijos ASTPrimaryExpression

            //Tratamos el caso de ASTExpression
        } else if (snHijo instanceof ASTExpression) {

            SimpleNode snNieto;

            //Recorre todos los hijos del ASTExpression
            for (int l = 0; l < snHijo.jjtGetNumChildren(); l++) {

                snNieto = (SimpleNode) snHijo.jjtGetChild(l);

                //Si el hijo es un ASTName
                if (snNieto instanceof ASTName) {

                    //Comprobamos si es un storableUnit reconocido
                    if (hsmStorableUnits.get(snNieto.getName()) != null) {

                        Element actionRelation = new Element("actionRelation");
                        actionRelation.setAttribute("id", "id." + idCount, xmi);
                        idCount++;
                        actionRelation.setAttribute("type", "action:Reads", xmi);
                        actionRelation.setAttribute("to",
                                "id." + String.valueOf(hsmStorableUnits.get(snNieto.getName())));
                        actionRelation.setAttribute("from", "id." + idAction);

                        actionElement.addContent(actionRelation);

                        //TODO: Revisar qu hacemos con las referencias atributos de Objetos (Objeto.atributo = ...) ASTName y ASTName

                        //Si no es un storableUnit reconocido
                    } else {

                        //logger.info("Encontrado un Hijo de ASTExpression que no es ASTName");
                        System.out.println("Encontrado un Hijo de ASTExpression que no es ASTName");

                    } //FIN Comprobar si se conoce el storableUnit

                    //Si el hijo es ASTBinOp
                } else if (snNieto instanceof ASTBinOp) {

                    //Si el hijo es ASTName 
                    if (snNieto.jjtGetChild(0) instanceof ASTName) {

                        strNombre = ((SimpleNode) (snNieto).jjtGetChild(0)).getName();

                        //Tratamos la llamada a mtodo

                        //Si la MethodUnit no estaba registrada
                        if (hsmMethodUnits.get(strNombre) == null && strNombre != null) {
                            //idCount++;                                 
                            //Se da de alta como nueva MethodUnit
                            Element nuevaFuncion = new Element("codeElement");
                            nuevaFuncion.setAttribute("id", "id." + idCount, xmi);
                            hsmMethodUnits.put(strNombre, idCount);
                            hsmMethodUnitsObj.put(idCount, nuevaFuncion);

                            //logger.info("METODO: "+strNombre+": "+idCount);              
                            System.out.println("METODO: " + strNombre + ": " + idCount);

                            idCount++;
                            nuevaFuncion.setAttribute("name", "" + strNombre);
                            nuevaFuncion.setAttribute("type", "code:MethodUnit", xmi);
                            //nuevaFuncion.setAttribute("kind", "system");  //TODO: Ver cmo tratar ste caso, funciones llamadas no definidas.
                            //nuevaFuncion.setAttribute("kind", "unknown"); //TODO: Ver cmo tratar ste caso, funciones llamadas no definidas.
                            //nuevaFuncion.setAttribute("kind", "external");  //Tratamos los mtodos no conocidos como de tipo exteral.
                            //Para los MethodUnit no hay external
                            nuevaFuncion.setAttribute("kind", "unknown");

                            segmento.getChild("model").getChild("codeElement").addContent(nuevaFuncion);
                            //                            this.segmento = segmento;

                            //Se registra el actionRelation (Call)                               
                            Element actionRelation = new Element("actionRelation");
                            actionRelation.setAttribute("id", "id." + idCount, xmi);
                            actionRelation.setAttribute("type", "action:Calls", xmi);
                            actionRelation.setAttribute("to",
                                    "id." + String.valueOf(hsmMethodUnits.get(strNombre)));
                            //                                       actionRelation.setAttribute("from","id."+String.valueOf(idCount));
                            actionRelation.setAttribute("from", "id." + idAction);
                            idCount++;

                            actionElement.addContent(actionRelation);

                            //segmento.getChild("model").getChild("codeElement").addContent(codeElement);

                            //Si el MethodUnit ya existia   
                        } else {

                            //Se registra el actionRelation (Call)
                            Element actionRelation = new Element("actionRelation");
                            actionRelation.setAttribute("id", "id." + idCount, xmi);
                            actionRelation.setAttribute("type", "action:Calls", xmi);
                            actionRelation.setAttribute("to",
                                    "id." + String.valueOf(hsmMethodUnits.get(strNombre)));
                            actionRelation.setAttribute("from", "id." + String.valueOf(idAction));
                            idCount++;
                            actionElement.addContent(actionRelation);

                        } //FIN Tratamiento la llamada a mtodo
                    } //FIN Tratar hijo ASTName
                    //TODO Hijos que no sean ASTName (Otro ASTBinOp contatenaciones) 
                    else {
                        System.out.println("ESTO ES UN ASTBinOp distinto.");
                    }
                    // EJEMPLO ->  AFOROS.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BaseDatos.mdb;Persist Security Info=False" 
                } //FIN Tratamiento tipos de hijos de ASTExpression
            } //FIN Recorrido de hijos de ASTExpression
        } //FIN Tratamiento tipos de hijos de ASTAssignment
    } //FIN Recorrido de hijos de ASTAssignment

    if (contextoLocal == "") {
        actionElement.setAttribute("kind", "global");
        segmento.getChild("model").getChild("codeElement").addContent(actionElement);
        //            this.segmento = segmento;
    } else {
        actionElement.setAttribute("kind", "local");
        Element elementAux = hsmMethodUnitsObj.get(hsmMethodUnits.get(contextoLocal));//.getChild("codeElement");
        elementAux.addContent(actionElement);
    }

}

From source file:cager.parser.test.SimpleTest3.java

License:Open Source License

private void trataStatements(ASTStatement astStatement, Element actionElement, Element segmento) {

    astStatement.getClass().getName();//  ww w.j a  v a 2  s  . c  om

    //System.out.println("SENTENCIA!!"+astStatement.getClass().getName());                          

    /*            
           switch (astStatement.getClass().getName()) {
            
           case "ASTIfStatement":
    System.out.println("SENTENCIA IF encontrada!!"+astStatement.getClass().getName());                
             break;
           case "ASTCaseStatment":
    System.out.println("SENTENCIA CASE encontrada!!"+astStatement.getClass().getName());
              break;
           case "ASTDoWhileStatement":
    System.out.println("SENTENCIA DOWHILE encontrada!!"+astStatement.getClass().getName());
              break;
           case "ASTForEachStatement":
    System.out.println("SENTENCIA FOREACH encontrada!!"+astStatement.getClass().getName());
              break;
           case "ASTForWhileWendStatement":
    System.out.println("SENTENCIA FORWHILE encontrada!!"+astStatement.getClass().getName());
              break;
           case "ASTWithStatement": 
    System.out.println("SENTENCIA WITH encontrada!!"+astStatement.getClass().getName());
              break;            
                     
          default:
             break;
          }
    */
    if (astStatement.getClass().getName().compareTo("cager.parser.ASTIfStatement") == 0) {

        System.out.println("SENTENCIA IF encontrada!!" + astStatement.getClass().getName());
        System.out.println(((ASTIfStatement) astStatement).toString());

        actionElement.setAttribute("kind", "Condition");

        if (contextoLocal == "") {
            //actionElement.setAttribute("kind", "global");
            segmento.getChild("model").getChild("codeElement").addContent(actionElement);
            //         this.segmento = segmento;
        } else {
            //actionElement.setAttribute("kind", "local");
            Element elementAux = hsmMethodUnitsObj.get(hsmMethodUnits.get(contextoLocal));
            elementAux.addContent(actionElement);
        }

        TratarASTIfStatement(astStatement, actionElement);

    } else if (astStatement.getClass().getName().compareTo("cager.parser.ASTCaseStatment") == 0) {
        System.out.println("SENTENCIA CASE encontrada!!" + astStatement.getClass().getName());
    } else if (astStatement.getClass().getName().compareTo("cager.parser.ASTForStatement") == 0) {
        System.out.println("SENTENCIA FOR encontrada!!" + astStatement.getClass().getName());
    } else if (astStatement.getClass().getName().compareTo("cager.parser.ASTDoWhileStatement") == 0) {
        System.out.println("SENTENCIA DOWHILE encontrada!!" + astStatement.getClass().getName());
    } else if (astStatement.getClass().getName().compareTo("cager.parser.ASTWhileWendStatement") == 0) {
        System.out.println("SENTENCIA WHILEWEND encontrada!!" + astStatement.getClass().getName());
    } else if (astStatement.getClass().getName().compareTo("cager.parser.ASTForEachStatement") == 0) {
        System.out.println("SENTENCIA FOREACH encontrada!!" + astStatement.getClass().getName());
    } else if (astStatement.getClass().getName().compareTo("cager.parser.ASTWithStatement") == 0) {
        System.out.println("SENTENCIA WITH encontrada!!" + astStatement.getClass().getName());
    } else {
        System.out.println("SENTENCIA encontrada SIN DETERMINAR!!" + astStatement.getClass().getName());
    }

}

From source file:carb.view.NewsParseur.java

static String getTexte() throws DataConversionException {

    Element elementNews = racineNews.getChild("allnews");

    Element newsTrouvee = null;/* ww w.j  a v  a2s . c  o  m*/
    Element courant = null;

    // dateString = dateDuJour.date(); // quand il sera toujours  jour              
    List listNews = elementNews.getChildren("news");
    Iterator i = listNews.iterator();

    int dateTrouvee = 0;

    while (dateTrouvee != 1 & i.hasNext()) {// tant que la date n'est pas trouv et qu'il reste des news
        //  analyser
        courant = (Element) i.next();

        String dateActuelle = courant.getChild("date").getText(); // petit test de date              
        if (dateActuelle.equals(dateString)) { // si on trouve une news aujourd'hui         
            dateTrouvee = 1;
            newsTrouvee = courant.clone();

        }
    }

    if (dateTrouvee == 1) {
        return newsTrouvee.getChild("text").getText();
    } else {
        System.out.println("Il y a eu une couille");
        return null;
    }

}

From source file:carb.view.NewsParseur.java

static String getTitre() throws DataConversionException {

    Element elementNews = racineNews.getChild("allnews");
    Element newsTrouvee = null;//from w  ww .  j  a v a2s  . c o  m
    Element courant = null;
    // dateString = dateDuJour.date(); // quand il sera toujours  jour              
    List listNews = elementNews.getChildren("news");
    Iterator i = listNews.iterator();

    int dateTrouvee = 0;

    while (dateTrouvee != 1 & i.hasNext()) {// tant que la date n'est pas trouv et qu'il reste des news
        //  analyser
        courant = (Element) i.next();
        String dateActuelle = courant.getChild("date").getText(); // petit test de date              
        if (dateActuelle.equals(dateString)) { // si on trouve une news aujourd'hui         
            dateTrouvee = 1;
            newsTrouvee = courant.clone();
        }
    }

    if (dateTrouvee == 1) {
        return newsTrouvee.getChild("title").getText();
    } else {
        System.out.println("Il y a eu une couille");
        return null;
    }
}

From source file:carb.view.ParsingEverything.java

static double afficheALL() throws DataConversionException {

    /* // test premiere solution
            //from  ww  w .j a v a  2  s. co m
    //On cre?e une List contenant tous les noeuds "etudiant" de l'Element racine
         Element elementRoute = racine.getChild("route");
         System.out.println("Test /n");
         List legs = elementRoute.getChildren("leg");
         double distanceTotale = 0;
                 
         for(int i = 0;i < legs.size(); i++ ){
            
    Element legActuel = (Element)legs.get(i);
    List listeStep = legActuel.getChildren("step");
            
    for (int j = 0; j< listeStep.size();j++){
                
        Element stepUnique = (Element)listeStep.get(j);
                
                
                   
        String distanceTrouvee = stepUnique.getChild("distance").getChild("text").getText();
         //System.out.println("Test /n" + distanceTrouvee);
     // essai   String tmpstr = "radius: -0.118211 zone";
      /* String asd[] = distanceTrouvee.split(" ");
        double dist = Double.parseDouble(asd[1]);
        System.out.println(dist);
        distanceTotale += dist;
        System.out.println("Test /n" + distanceTotale);*/

    /*  String values[] = distanceTrouvee.split("\t");
      List<String> list = Arrays.asList(values);
      //Reverse the list so that longitude and latitude are the first two elements
      Collections.reverse(list);
            
      String distanceString = list.get(0);
      double distanceDouble = Double.parseDouble(distanceString);
              
      distanceTotale = distanceTotale + distanceDouble;
             
              
      System.out.println("Test" + j + " " + distanceTotale);
            
      }
    }
      */

    // deuxieme solution
    Element elementRow = racine.getChild("row");

    String distanceTrouveeString = elementRow.getChild("element").getChild("distance").getChild("value")
            .getText();
    double distanceDouble = Double.parseDouble(distanceTrouveeString);
    distanceDouble = distanceDouble / 1000;
    System.out.println("Distance trouvee :  " + distanceDouble + " KM ");
    return distanceDouble;

}

From source file:ch.unifr.diuf.diva.did.commands.AbstractCommand.java

License:Open Source License

private String getParameter(Element e, String childName) {
    Element child = e.getChild(childName);
    if (child == null) {
        illegalArgument("cannot find parameter " + childName + "\n" + e.toString());
    }//ww w .j  ava2  s.c  o m
    if (child.getText() == null) {
        illegalArgument(childName + " cannot be empty");
    }
    return script.preprocess(child.getText());
}

From source file:ch.unifr.diuf.diva.did.commands.SelectiveBlur.java

License:Open Source License

@Override
public float execute(Element task) throws IOException, JDOMException, InterruptedException {
    String refName = task.getAttributeValue("ref");
    if (refName == null) {
        throw new IllegalArgumentException("\n" + commandName + ": ref is required");
    }/*from  w  w w  .ja v a 2 s.c  o m*/
    refName = script.preprocess(refName);

    Element rangeElement = task.getChild("range");
    if (rangeElement == null) {
        throw new IllegalArgumentException("\n" + commandName + ": <range> is required");
    }
    int range = Integer.parseInt(script.preprocess(rangeElement.getText()));

    Element thresElement = task.getChild("threshold");
    if (thresElement == null) {
        throw new IllegalArgumentException(
                "\n" + commandName + ", <apply-selective-blur>: <range> is required");
    }
    float thres = Float.parseFloat(script.preprocess(thresElement.getText()));
    thres = thres * thres;

    Image img = script.getImages().get(refName);
    Image res = new Image(img);

    for (int l = 0; l < 3; l++) {
        for (int x = 0; x < res.getWidth(); x++) {
            for (int y = 0; y < res.getHeight(); y++) {
                float sum = 0;
                int count = 0;
                for (int dx = -range; dx <= range; dx++) {
                    for (int dy = -range; dy <= range; dy++) {
                        int px = x + dx;
                        int py = y + dy;
                        if (px < 0 || py < 0 || px >= res.getWidth() || py >= res.getHeight()) {
                            continue;
                        }
                        float dr = img.get(0, px, py) - img.get(0, x, y);
                        float dg = img.get(1, px, py) - img.get(1, x, y);
                        float db = img.get(2, px, py) - img.get(2, x, y);
                        if (dr * dr + dg * dg + db * db > thres) {
                            continue;
                        }

                        sum += img.get(l, px, py);
                        count++;
                    }
                }
                res.set(l, x, y, sum / count);
            }
        }
    }
    script.getImages().put(refName, res);
    return 0;
}

From source file:ch.unifr.diuf.diva.did.commands.SelectiveHVBlur.java

License:Open Source License

@Override
public float execute(Element task) throws IOException, JDOMException, InterruptedException {
    String refName = task.getAttributeValue("ref");
    if (refName == null) {
        throw new IllegalArgumentException("\n" + commandName + ", <apply-selective-blur>: ref is required");
    }/*from w  w w. j a va2 s.  co  m*/
    refName = script.preprocess(refName);

    Element rangeElement = task.getChild("range");
    if (rangeElement == null) {
        throw new IllegalArgumentException(
                "\n" + commandName + ", <apply-selective-blur>: <range> is required");
    }
    int range = Integer.parseInt(script.preprocess(rangeElement.getText()));

    Element thresElement = task.getChild("threshold");
    if (thresElement == null) {
        throw new IllegalArgumentException(
                "\n" + commandName + ", <apply-selective-blur>: <range> is required");
    }
    float thres = Float.parseFloat(script.preprocess(thresElement.getText()));
    thres = thres * thres;

    Image img = script.getImages().get(refName);
    Image res = new Image(img);

    for (int l = 0; l < 3; l++) {
        for (int x = 0; x < res.getWidth(); x++) {
            for (int y = 0; y < res.getHeight(); y++) {
                float sum = 0;
                int count = 0;
                for (int d = -range; d <= range; d++) {
                    int px = x + d;
                    int py = y + d;

                    if (px >= 0 && px < res.getWidth()) {
                        float dr = img.get(0, px, y) - img.get(0, x, y);
                        float dg = img.get(1, px, y) - img.get(1, x, y);
                        float db = img.get(2, px, y) - img.get(2, x, y);
                        if (dr * dr + dg * dg + db * db <= thres) {
                            sum += img.get(l, px, y);
                            count++;
                        }
                    }

                    if (py >= 0 && py < res.getHeight()) {
                        float dr = img.get(0, x, py) - img.get(0, x, y);
                        float dg = img.get(1, x, py) - img.get(1, x, y);
                        float db = img.get(2, x, py) - img.get(2, x, y);
                        if (dr * dr + dg * dg + db * db <= thres) {
                            sum += img.get(l, x, py);
                            count++;
                        }
                    }
                }
                res.set(l, x, y, sum / count);
            }
        }
    }
    script.getImages().put(refName, res);
    return 0;
}

From source file:Codigo.XMLReader.java

/**
 * Metodo utilizado para cargar del XML la lisa de equipos que participan
 * en el mundial/*from  w w w.jav a 2s  . c o m*/
 * @return Lista con los equipos participantes
 */
public ListaEquipos cargarListaEquipos() {

    // Se crea la lista con los equipos que se va a retornar
    ListaEquipos listaEquipos = new ListaEquipos();
    //Se crea un SAXBuilder para poder parsear el archivo
    SAXBuilder builder = new SAXBuilder();

    try {
        File xmlFile = new File(getClass().getResource("/XML/Equipos.xml").toURI());
        //Se crea el documento a traves del archivo
        Document document = (Document) builder.build(xmlFile);
        //Se obtiene la raiz 'Equipos'
        Element raizXML = document.getRootElement();

        //Se obtiene la lista de hijos de la raiz 'Equipos' (Todos los equipos del mundial)
        List listEquipos = raizXML.getChildren("Equipo");

        //Se recorre la lista de hijos de 'Equipos'
        for (int i = 0; i < listEquipos.size(); i++) {
            //Se obtiene el elemento 'equipo'
            Element equipo = (Element) listEquipos.get(i);
            // Se obtienen los datos del equipo actual
            String nombreEquipo = equipo.getChildText("Nombre");
            String nombreEntrenador = equipo.getChildText("Entrenador");
            int partidosJugados = Integer.parseInt(equipo.getChildTextTrim("PartidosJugados"));
            int partidosGanados = Integer.parseInt(equipo.getChildTextTrim("PartidosGanados"));
            int partidosEmpatados = Integer.parseInt(equipo.getChildTextTrim("PartidosEmpatados"));
            int partidosPerdidos = Integer.parseInt(equipo.getChildTextTrim("PartidosPerdidos"));
            int golesAFavor = Integer.parseInt(equipo.getChildTextTrim("GolesAFavor"));
            int golesEnContra = Integer.parseInt(equipo.getChildTextTrim("GolesEnContra"));
            int golDiferencia = Integer.parseInt(equipo.getChildTextTrim("GolDiferencia"));
            int puntos = Integer.parseInt(equipo.getChildTextTrim("Puntos"));
            // Se obtiene la lista de jugadores con su informacion del XML
            List listJugadores = equipo.getChild("Jugadores").getChildren("Jugador");

            // Se crea la lista de jugadores que va a contener el equipo actual
            ListaJugadores jugadores = new ListaJugadores();

            // Se recorre la lista de jugadores
            for (int j = 0; j < listJugadores.size(); j++) {
                // Se obtiene el jugador 'j' de la lista de Jugadores
                Element jugador = (Element) listJugadores.get(j);
                // Se obtienen los datos del jugador 'j'
                String nombreJugador = jugador.getChildText("Nombre");
                int numeroCamiseta = Integer.parseInt(jugador.getChildTextTrim("NumeroCamiseta"));
                String posicion = jugador.getChildTextTrim("Posicion");
                int edad = Integer.parseInt(jugador.getChildTextTrim("Edad"));
                int estatura = Integer.parseInt(jugador.getChildTextTrim("Estatura"));
                int goles = Integer.parseInt(jugador.getChildTextTrim("Goles"));

                //Se crea un nuevo NodoJugador donde se va a almacenar el jugador
                NodoJugador jugadorNuevo = new NodoJugador(nombreJugador, posicion, edad, estatura,
                        numeroCamiseta, goles);

                // Se inserta el nuevo NodoJugador en la lista de jugadores
                jugadores.insertarOrdenadoPorEdad(jugadorNuevo);
            }

            // Se crea un nuevo NodoEquipo que almacena la informacion del equipo actual
            NodoEquipo equipoActual = new NodoEquipo(nombreEquipo, nombreEntrenador, jugadores, partidosJugados,
                    partidosGanados, partidosEmpatados, partidosPerdidos, golesAFavor, golesEnContra,
                    golDiferencia, puntos);

            // Se inserta el NodoEquipo actual en la lista de equipos
            listaEquipos.insertarOrdenado(equipoActual);
        }
        // Retorna la lista de todos los equipos
        return listaEquipos;

    } catch (IOException | JDOMException | URISyntaxException io) {
        System.out.println(io.getMessage());
        return null;
    }
}