List of usage examples for org.jdom2 Element Element
public Element(final String name)
From source file:cager.parser.test.SimpleTest2.java
License:Open Source License
private Element inicializaDataTypes() { // Creamos el builder basado en SAX SAXBuilder builder = new SAXBuilder(); Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI"); Namespace code = Namespace.getNamespace("code", "http://kdm.omg.org/code"); Element model = new Element("model"); model.setAttribute("id", "id." + idCount, xmi); model.setAttribute("type", "code:CodeModel", xmi); idCount++;// w w w .j a v a2 s . com Element codeElementP = new Element("codeElement"); codeElementP.setAttribute("id", "id." + idCount, xmi); codeElementP.setAttribute("type", "code:LanguageUnit", xmi); idCount++; Element codeElementI = new Element("codeElement"); for (int i = 0; i < dataTypes.length; i++) { codeElementI = new Element("codeElement"); codeElementI.setAttribute("id", "id." + idCount, xmi); if (dataTypes[i].equals("Double") || dataTypes[i].equals("Long") || dataTypes[i].equals("Short")) { codeElementI.setAttribute("type", "code:DecimalType", xmi); } else if (dataTypes[i].equals("Byte")) { codeElementI.setAttribute("type", "code:OctetType", xmi); } else { codeElementI.setAttribute("type", "code:" + dataTypes[i] + "Type", xmi); } codeElementI.setAttribute("name", dataTypes[i]); if (!hsmLanguajeUnitDataType.containsKey(dataTypes[i])) { hsmLanguajeUnitDataType.put(dataTypes[i], idCount); } idCount++; codeElementP.addContent(codeElementI); } //model.addContent(codeElementP); return codeElementP; }
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 .ja v a2s .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 Element TratarSignature(SimpleNode astNode, String strNombre) { //Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI"); Element signature = new Element("codeElement"); signature.setAttribute("id", "id." + idCount, xmi); signature.setAttribute("type", "code:Signature", xmi); signature.setAttribute("name", strNombre); idCount++;//w w w .ja v a 2s.c o m for (int i = 0; i < astNode.jjtGetNumChildren(); i++) { if (astNode.jjtGetChild(i) instanceof ASTFormalParamList) { SimpleNode paramList = (SimpleNode) astNode.jjtGetChild(i); for (int j = 0; j < paramList.jjtGetNumChildren(); j++) { String tipo = ""; String nombre = ""; String valorTipo = ""; String kind = null; for (int k = 0; k < paramList.jjtGetChild(j).jjtGetNumChildren(); k++) { SimpleNode hijo = (SimpleNode) paramList.jjtGetChild(j).jjtGetChild(k); //TODO: hacer la correspondencia token/valor del ParameterKind (byVal/byValue, etc...) if (paramList.jjtGetChild(j) instanceof ASTParamSpec) { ASTParamSpec param = ((ASTParamSpec) paramList.jjtGetChild(j)); if (param.getByVal()) { kind = "byValue"; } else if (param.getbyRef()) { kind = "byReference"; } else { kind = null; } } //Se busca el nombre if (hijo instanceof ASTName) { nombre = hijo.getName(); } else if (hijo instanceof ASTTypeName) { if (hijo.jjtGetNumChildren() > 1) { tipo = ((SimpleNode) hijo.jjtGetChild(0)).getName(); for (int l = 1; l < hijo.jjtGetNumChildren(); l++) { tipo = tipo + "." + ((SimpleNode) hijo.jjtGetChild(l)).getName(); } } else { tipo = ((SimpleNode) hijo.jjtGetChild(0)).getName(); } } else { if (hijo instanceof ASTExpression) { valorTipo = ((SimpleNode) hijo.jjtGetChild(0)).getName(); } } } Integer numeroTipo = hsmLanguajeUnitDataType.get(tipo); if (numeroTipo == null) { numeroTipo = idCount; Element enumerated = new Element("codeElement"); enumerated.setAttribute("id", "id." + numeroTipo, xmi); enumerated.setAttribute("type", "code:EnumeratedType", xmi); enumerated.setAttribute("name", tipo); hsmLanguajeUnitDataType.put(tipo, numeroTipo); idCount++; Element valor = new Element("value"); valor.setAttribute("id", "id." + idCount, xmi); valor.setAttribute("name", valorTipo); valor.setAttribute("type", "id." + String.valueOf(numeroTipo)); idCount++; enumerated.addContent(valor); //Aadimos el enumerated a la lista de tipos elementoTipos.addContent(enumerated); } Element parameterUnit = new Element("parameterUnit"); parameterUnit.setAttribute("id", "id." + idCount, xmi); parameterUnit.setAttribute("name", nombre); if (kind != null) parameterUnit.setAttribute("kind", kind); parameterUnit.setAttribute("type", "id." + numeroTipo); parameterUnit.setAttribute("pos", String.valueOf(j)); idCount++; signature.addContent(parameterUnit); } //Aadimos el tipo devuelto (tipo del Return) String tipo = "Void"; for (int n = 1; n < astNode.jjtGetNumChildren(); n++) { if (astNode.jjtGetChild(n) instanceof ASTName) { tipo = ((SimpleNode) astNode.jjtGetChild(n)).getName(); } } Element parameterUnit = new Element("parameterUnit"); parameterUnit.setAttribute("id", "id." + idCount, xmi); parameterUnit.setAttribute("type", "id." + hsmLanguajeUnitDataType.get(tipo)); parameterUnit.setAttribute("kind", "return"); idCount++; signature.addContent(parameterUnit); } } return signature; }
From source file:cager.parser.test.SimpleTest3.java
License:Open Source License
private void trataNodo2(SimpleNode astNode, Element segmento, int nivel, int nivelAcumulado, String contexto) { int numChildren = astNode.jjtGetNumChildren(); if ((SimpleNode) astNode instanceof ASTStatements) { System.out.println("***>" + nivel + " - " + numChildren + " -> " + astNode.getClass().getName() + " " + astNode.toString());// w w w . j a v a 2 s . c o m } SimpleNode snHijo = new SimpleNode(0); String strNombre = ""; contextoLocal = contexto; strNombre = astNode.getName(); if (hsmMethodUnits.get(strNombre) != null) { contextoLocal = strNombre; } String espacios = ""; for (int j = 0; j < nivelAcumulado; j++) espacios += " "; //logger.info(espacios+"Trata nodo : "+nivel+" - "+numChildren+" -> "+astNode.getClass().getName()+" "+astNode.toString()); //System.out.println(espacios+"Trata nodo : "+nivel+" - "+numChildren+" -> "+astNode.getClass().getName()+" "+astNode.toString()); System.out.println(espacios + nivel + " - " + numChildren + " -> " + astNode.getClass().getName() + " " + astNode.toString()); // Recorre todos los hijos del ASTNode for (int i = 0; i < numChildren; i++) { strNombre = ((SimpleNode) astNode.jjtGetChild(i)).getName(); if ((SimpleNode) astNode.jjtGetChild(i) instanceof ASTAssignment || (SimpleNode) astNode.jjtGetChild(i) instanceof ASTExpression) { ASTAssignment assigment = (ASTAssignment) astNode.jjtGetChild(i); //Preparamos el ActionElement Element actionElement = new Element("codeElement"); idAction = idCount; idCount++; actionElement.setAttribute("id", "id." + idAction, xmi); trataExpressions(assigment, actionElement, nivelAcumulado, segmento); } else if ((SimpleNode) astNode.jjtGetChild(i) instanceof ASTStatement) { ASTStatement astStatement = (ASTStatement) astNode.jjtGetChild(i); //Preparamos el ActionElement Element actionElement = new Element("codeElement"); idCount++; idAction = idCount; idCount++; actionElement.setAttribute("id", "id." + idAction, xmi); actionElement.setAttribute("type", "action:ActionElement", xmi); actionElement.setAttribute("name", "a" + idName); //actionElement.setAttribute("name",contexto+"_"+idName); idName++; trataStatements(astStatement, actionElement, segmento); } trataNodo2((SimpleNode) astNode.jjtGetChild(i), segmento, nivel + 1, nivel + nivelAcumulado, contextoLocal); } }
From source file:cager.parser.test.SimpleTest3.java
License:Open Source License
private void trataExpressions(SimpleNode astAssignment, Element actionElement, int nivelAcumulado, Element segmento) {// w w w. j a v a 2s. co m 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++; 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 TratarASTIfStatement(ASTStatement astStatement, Element actionElement) { //Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI"); //<actionRelation xmi:id="id.26" xmi:type="action:Reads" to="id.20" from="id.25"/> Element actionRelation = new Element("actionRelation"); actionRelation.setAttribute("id", "id." + idCount, xmi); idCount++;/*from w ww .j av a 2 s . c o m*/ actionRelation.setAttribute("type", "action:Reads", xmi); //actionRelation.setAttribute("to", "id."+(idAction+2));//TODO calcular a dnde va actionRelation.setAttribute("from", "id." + idAction); actionElement.addContent(actionRelation); //<actionRelation xmi:id="id.46" xmi:type="action:Writes" to="id.39"/> actionRelation = new Element("actionRelation"); actionRelation.setAttribute("id", "id." + idCount, xmi); idCount++; actionRelation.setAttribute("type", "action:TrueFlow", xmi); //actionRelation.setAttribute("to", "id."+(idAction+2));//TODO calcular a dnde va actionRelation.setAttribute("from", "id." + idAction); actionElement.addContent(actionRelation); actionRelation = new Element("actionRelation"); actionRelation.setAttribute("id", "id." + idCount, xmi); idCount++; actionRelation.setAttribute("type", "action:FalseFlow", xmi); //actionRelation.setAttribute("to", "id."+(idAction+1));//TODO calcular a dnde va actionRelation.setAttribute("from", "id." + idAction); actionElement.addContent(actionRelation); // <codeElement xmi:id="id.34" xmi:type="action:ActionElement" name="a3.1" kind="Condition"> // <actionRelation xmi:id="id.35" xmi:type="action:Reads" to="id.29" from="id.34"/> // <actionRelation xmi:id="id.36" xmi:type="action:TrueFlow" to="id.38" from="id.28"/> // <actionRelation xmi:id="id.37" xmi:type="action:FalseFlow" to="id.42" from="id.34"/> // </codeElement> // <codeElement xmi:id="id.111" xmi:type="action:ActionElement" name="p5.2" kind="GreaterThan"> // <actionRelation xmi:id="id.112" xmi:type="action:Reads" to="id.104" from="id.111"/> // <actionRelation xmi:id="id.113" xmi:type="action:TrueFlow" to="id.115" from="id.111"/> // <actionRelation xmi:id="id.114" xmi:type="action:FalseFlow" to="id.120" from="id.111"/> // </codeElement> /* <codeElement xmi:id="id.25" xmi:type="action:ActionElement" name="1.3" kind="Condition"> <actionRelation xmi:id="id.26" xmi:type="action:Reads" to="id.20" from="id.25"/> <actionRelation xmi:id="id.27" xmi:type="action:TrueFlow" to="id.29" from="id.25"/> <actionRelation xmi:id="id.28" xmi:type="action:FalseFlow" to="id.39" from="id.25"/> </codeElement> <codeElement xmi:id="id.75" xmi:type="action:ActionElement" name="a1" kind="Condition"> <actionRelation xmi:id="id.76" xmi:type="action:TrueFlow" to="id.77" from="id.75" /> <actionRelation xmi:id="id.77" xmi:type="action:FalseFlow" to="id.76" from="id.75" /> </codeElement> */ }
From source file:cager.parser.test.SimpleTest3.java
License:Open Source License
private Element inicializaDataTypes() { // Creamos el builder basado en SAX SAXBuilder builder = new SAXBuilder(); //Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI"); Namespace code = Namespace.getNamespace("code", "http://kdm.omg.org/code"); Element model = new Element("model"); model.setAttribute("id", "id." + idCount, xmi); model.setAttribute("type", "code:CodeModel", xmi); idCount++;/*from ww w. j a v a 2s.c o m*/ Element codeElementP = new Element("codeElement"); codeElementP.setAttribute("id", "id." + idCount, xmi); codeElementP.setAttribute("type", "code:LanguageUnit", xmi); idCount++; Element codeElementI = new Element("codeElement"); for (int i = 0; i < dataTypes.length; i++) { codeElementI = new Element("codeElement"); codeElementI.setAttribute("id", "id." + idCount, xmi); if (dataTypes[i].equals("Double") || dataTypes[i].equals("Long") || dataTypes[i].equals("Short")) { codeElementI.setAttribute("type", "code:DecimalType", xmi); } else if (dataTypes[i].equals("Byte")) { codeElementI.setAttribute("type", "code:OctetType", xmi); } else { codeElementI.setAttribute("type", "code:" + dataTypes[i] + "Type", xmi); } codeElementI.setAttribute("name", dataTypes[i]); if (!hsmLanguajeUnitDataType.containsKey(dataTypes[i])) { hsmLanguajeUnitDataType.put(dataTypes[i], idCount); } idCount++; codeElementP.addContent(codeElementI); } //model.addContent(codeElementP); return codeElementP; }
From source file:catalogo.XMLOut.java
public void criaDocument(List<String[]> lista, String[] categorias) { Element artigos = new Element("listagem"); Document doc = new Document(artigos); //iterao sobre a lista com os artigos for (int i = 0; i < lista.size(); i++) { Element artigo1 = new Element("artigo"); artigo1.setAttribute("id", Integer.toString(i)); //iterao sobre os valores do artigo for (int j = 0; j < lista.get(i).length; j++) { if (categorias[j].equals("ano")) artigo1.addContent(new Element("ano").setText(lista.get(i)[j])); else/* ww w . ja v a 2 s.c o m*/ artigo1.addContent(new Element(categorias[j]).setText(lista.get(i)[j])); } doc.getRootElement().addContent(artigo1); } criaXML(doc); }
From source file:codigoFonte.Sistema.java
public boolean addUser(User u) throws IOException { boolean success = false, matriculaExists = false; File file = new File("Sistema.xml"); Document newDocument = null;/*from ww w .j a v a2s . c o m*/ Element root = null; Attribute matricula = null, nome = null, tipo = null, senha = null; Element user = null; if (u.getTipo().isEmpty() || u.getTipo().isEmpty() || u.getPassword().isEmpty()) { return success; } if (file.exists()) { SAXBuilder builder = new SAXBuilder(); try { newDocument = builder.build(file); } catch (JDOMException ex) { Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); } root = newDocument.getRootElement(); } else { root = new Element("sistema"); newDocument = new Document(root); } if (root.getChildren().size() > 0) { List<Element> listUsers = root.getChildren(); for (Element a : listUsers) { if (a.getAttributeValue("matrcula").equals(u.getMatricula())) { matriculaExists = true; } } } if (!matriculaExists) { user = new Element("user"); matricula = new Attribute("matrcula", this.newId()); tipo = new Attribute("tipo", u.getTipo()); nome = new Attribute("nome", u.getNome()); senha = new Attribute("senha", u.getPassword()); user.setAttribute(matricula); user.setAttribute(nome); user.setAttribute(tipo); user.setAttribute(senha); //user.setAttribute(divida); root.addContent(user); success = true; } // XMLOutputter out = new XMLOutputter(); try { FileWriter arquivo = new FileWriter(file); out.output(newDocument, arquivo); } catch (IOException ex) { Logger.getLogger(Sistema.class.getName()).log(Level.SEVERE, null, ex); } return success; }
From source file:codigoFonte.Sistema.java
public ArrayList<User> listarUser() { File file = new File("Sistema.xml"); Document newDocument = null;//from w w w .j ava 2 s .c o m Element root = null; ArrayList<User> users = new ArrayList<User>(); ; ArrayList<Livro> livros = new ArrayList<Livro>(); if (file.exists()) { SAXBuilder builder = new SAXBuilder(); try { newDocument = builder.build(file); } catch (JDOMException ex) { Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); } root = newDocument.getRootElement(); } else { root = new Element("sistema"); newDocument = new Document(root); } List<Element> listusers = root.getChildren(); for (Element e : listusers) { User user = new User(null, null, null, null); List<Element> listlivro = e.getChildren("livro"); List<Element> historico = e.getChildren("histrico"); if (!listlivro.isEmpty()) for (Element l : listlivro) { Livro livro = new Livro(null, null, null, 0); livro.setAutor(l.getAttributeValue("autor")); livro.setEditora(l.getAttributeValue("editora")); livro.setTitulo(l.getAttributeValue("ttulo")); livros.add(livro); } //List<Element> historico = e.getChildren("histrico"); ArrayList<Livro> historicoObjeto = new ArrayList<Livro>(); if (!historico.isEmpty()) { for (Element h : historico) { Livro livroHistorico = new Livro(null, null, null, 0); livroHistorico.setAutor(h.getAttributeValue("autor")); livroHistorico.setEditora(h.getAttributeValue("editora")); livroHistorico.setTitulo(h.getAttributeValue("ttulo")); historicoObjeto.add(livroHistorico); } } user.setMatricula(e.getAttributeValue("matrcula")); user.setNome(e.getAttributeValue("nome")); user.setTipo(e.getAttributeValue("tipo")); user.setLivros(livros); users.add(user); } return users; }