List of usage examples for org.jdom2 Element getChild
public Element getChild(final String cname)
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; } }