Example usage for org.jdom2 Namespace getNamespace

List of usage examples for org.jdom2 Namespace getNamespace

Introduction

In this page you can find the example usage for org.jdom2 Namespace getNamespace.

Prototype

public static Namespace getNamespace(final String prefix, final String uri) 

Source Link

Document

This will retrieve (if in existence) or create (if not) a Namespace for the supplied prefix and uri.

Usage

From source file:ca.nrc.cadc.vosi.Availability.java

License:Open Source License

public AvailabilityStatus fromXmlDocument(Document doc) throws ParseException {
    Namespace vosi = Namespace.getNamespace("vosi", VOSI.AVAILABILITY_NS_URI);
    Element availability = doc.getRootElement();
    if (!availability.getName().equals("availability"))
        throw new IllegalArgumentException("missing root element 'availability'");

    Element elemAvailable = availability.getChild("available", vosi);
    if (elemAvailable == null)
        throw new IllegalArgumentException("missing element 'available'");
    boolean available = elemAvailable.getText().equalsIgnoreCase("true");

    DateFormat df = DateUtil.getDateFormat(DateUtil.IVOA_DATE_FORMAT, DateUtil.UTC);

    Element elemUpSince = availability.getChild("upSince", vosi);
    Element elemDownAt = availability.getChild("downAt", vosi);
    Element elemBackAt = availability.getChild("backAt", vosi);
    Element elemNote = availability.getChild("note", vosi);

    Date upSince = null;//from  w  w  w  .  j  a  va  2s  .  c  o m
    Date downAt = null;
    Date backAt = null;
    String note = null;

    if (elemUpSince != null)
        upSince = df.parse(elemUpSince.getText());
    if (elemDownAt != null)
        downAt = df.parse(elemDownAt.getText());
    if (elemBackAt != null)
        backAt = df.parse(elemBackAt.getText());
    if (elemNote != null)
        note = elemNote.getText();

    return new AvailabilityStatus(available, upSince, downAt, backAt, note);
}

From source file:ca.nrc.cadc.vosi.Capabilities.java

License:Open Source License

public Document toXmlDocument() {
    Namespace xsi = Namespace.getNamespace("xsi", VOSI.XSI_NS_URI);
    Namespace cap = Namespace.getNamespace("vosi", VOSI.CAPABILITIES_NS_URI);
    Namespace vod = Namespace.getNamespace("vod", VOSI.VODATASERVICE_NS_URI);

    Element eleCapabilities = new Element("capabilities", cap);
    eleCapabilities.addNamespaceDeclaration(xsi);
    eleCapabilities.addNamespaceDeclaration(cap);
    eleCapabilities.addNamespaceDeclaration(vod);

    //Attribute attSchemaLocation = new Attribute("schemaLocation", XSI_LOC, xsi);
    //eleCapabilities.setAttribute(attSchemaLocation);

    Document document = new Document();
    document.addContent(eleCapabilities);

    for (Capability capability : this._caps) {
        eleCapabilities.addContent(capability.toXmlElement(xsi, cap, vod));
    }/*  www  .  ja va  2  s .  c  om*/
    return document;
}

From source file:cager.parser.test.SimpleTest2.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 2s.co 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);

            //<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);

                //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);
                } 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.SimpleTest2.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++;//from  www  .  j  a v  a2 s  .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;
                        }
                    }
                    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
            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.SimpleTest2.java

License:Open Source License

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

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

    SimpleNode snHijo = new SimpleNode(0);

    String strNombre = "";

    String contextoLocal = "";
    contextoLocal = contexto;//from   w  w  w.  j  a v a  2s .  com

    strNombre = astNode.getName();

    //      if (strNombre!= null && contextoLocal.compareTo(strNombre)!=0) idName = 0;      

    if (hsmMethodUnits.get(strNombre) != null) {
        //          if (contextoLocal.compareTo(strNombre)!=0) idName = 0;
        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());

    // 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) {

            //Preparamos el ActionElement
            Element actionElement = new Element("codeElement");
            idAction = idCount;
            idCount++;
            actionElement.setAttribute("id", "id." + idAction, xmi);
            actionElement.setAttribute("type", "action:ActionElement", xmi);
            if (this.debuggMode)
                actionElement.setAttribute("debug", astNode.jjtGetChild(i).toString());
            actionElement.setAttribute("name", "a" + idName);
            //actionElement.setAttribute("name",contexto+"_"+idName);
            idName++;
            espacios = "";
            for (int j = 0; j < nivelAcumulado; j++)
                espacios += "    ";

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

                snHijo = (SimpleNode) (astNode.jjtGetChild(i)).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);

                            //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);

                                    //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 
                            // 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);
            } else {
                actionElement.setAttribute("kind", "local");
                Element elementAux = hsmMethodUnitsObj.get(hsmMethodUnits.get(contextoLocal));//.getChild("codeElement");
                elementAux.addContent(actionElement);
            }

        } else if ((SimpleNode) astNode.jjtGetChild(i) instanceof ASTStatement) {

            ASTStatement astStatement = (ASTStatement) astNode.jjtGetChild(i);

            astStatement.getClass().getName();

            //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());

                //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++;
                actionElement.setAttribute("kind", "Condition");

                if (contextoLocal == "") {
                    //actionElement.setAttribute("kind", "global");
                    segmento.getChild("model").getChild("codeElement").addContent(actionElement);
                } 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());
            }
        }
        trataNodo2((SimpleNode) astNode.jjtGetChild(i), segmento, nivel + 1, nivel + nivelAcumulado,
                contextoLocal);
    }
}

From source file:cager.parser.test.SimpleTest2.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++;//  www . ja  v  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.SimpleTest2.java

License:Open Source License

private Element inicializaKDM(String segmentName) {

    // Creamos el builder basado en SAX
    SAXBuilder builder = new SAXBuilder();

    Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI");
    Namespace xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
    Namespace action = Namespace.getNamespace("action", "http://kdm.omg.org/action");
    Namespace code = Namespace.getNamespace("code", "http://kdm.omg.org/code");
    Namespace kdm = Namespace.getNamespace("kdm", "http://kdm.omg.org/kdm");
    Namespace source = Namespace.getNamespace("source", "http://kdm.omg.org/source");

    Element segmento = new Element("Segment", kdm);
    segmento.addNamespaceDeclaration(xmi);
    segmento.addNamespaceDeclaration(xsi);
    segmento.addNamespaceDeclaration(action);
    segmento.addNamespaceDeclaration(code);
    segmento.addNamespaceDeclaration(kdm);
    segmento.addNamespaceDeclaration(source);

    segmento.setAttribute("name", segmentName.substring(0, segmentName.indexOf('.')));

    Element modelo = new Element("model");
    modelo.setAttribute("id", "id.0", xmi);
    idCount++;/*from w  ww  .j  ava  2 s .  c om*/
    modelo.setAttribute("name", segmentName.substring(0, segmentName.indexOf('.')));
    modelo.setAttribute("type", "code:CodeModel", xmi);

    Element codeElement = new Element("codeElement");
    codeElement.setAttribute("id", "id.1", xmi);
    idCount++;
    codeElement.setAttribute("name", segmentName);
    codeElement.setAttribute("type", "code:CompilationUnit", xmi);

    modelo.addContent(codeElement);

    elementoTipos = inicializaDataTypes();

    modelo.addContent(elementoTipos);

    segmento.addContent(modelo);

    return segmento;
}

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++;/*from  w ww.  j  a v a 2 s .co 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:cager.parser.test.SimpleTest2.java

License:Open Source License

private void XMLtoJavaParser() {

    // Creamos el builder basado en SAX  
    SAXBuilder builder = new SAXBuilder();

    try {//from  w ww .  j  av a  2  s  . c  o m

        String nombreMetodo = null;
        List<String> atributos = new ArrayList<String>();
        String tipoRetorno = null;
        String nombreArchivo = null;
        String exportValue = "";
        String codigoFuente = "";
        HashMap<String, String> tipos = new HashMap<String, String>();

        // Construimos el arbol DOM a partir del fichero xml  
        Document doc = builder.build(new FileInputStream(ruta + "VBParser\\ejemplosKDM\\archivo.kdm"));
        //Document doc = builder.build(new FileInputStream("E:\\WorkspaceParser\\VBParser\\ejemplosKDM\\archivo.kdm"));    

        Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI");

        XPathExpression<Element> xpath = XPathFactory.instance().compile("//codeElement", Filters.element());

        List<Element> elements = xpath.evaluate(doc);

        for (Element emt : elements) {

            if (emt.getAttribute("type", xmi).getValue().compareTo("code:CompilationUnit") == 0) {

                nombreArchivo = emt.getAttributeValue("name").substring(0,
                        emt.getAttributeValue("name").indexOf('.'));

            }

            if (emt.getAttribute("type", xmi).getValue().compareTo("code:LanguageUnit") == 0) {

                List<Element> hijos = emt.getChildren();

                for (Element hijo : hijos) {

                    tipos.put(hijo.getAttributeValue("id", xmi), hijo.getAttributeValue("name"));

                }

            }
        }

        FileOutputStream fout;

        fout = new FileOutputStream(ruta + "VBParser\\src\\cager\\parser\\test\\" + nombreArchivo + ".java");
        //fout = new FileOutputStream("E:\\WorkspaceParser\\VBParser\\src\\cager\\parser\\test\\"+nombreArchivo+".java");           
        // get the content in bytes
        byte[] contentInBytes = null;

        contentInBytes = ("package cager.parser.test;\n\n").getBytes();

        fout.write(contentInBytes);
        fout.flush();

        contentInBytes = ("public class " + nombreArchivo + "{\n\n").getBytes();

        fout.write(contentInBytes);
        fout.flush();

        for (Element emt : elements) {
            // System.out.println("XPath has result: " + emt.getName()+" "+emt.getAttribute("type",xmi));
            if (emt.getAttribute("type", xmi).getValue().compareTo("code:MethodUnit") == 0) {

                nombreMetodo = emt.getAttribute("name").getValue();

                if (emt.getAttribute("export") != null)
                    exportValue = emt.getAttribute("export").getValue();

                atributos = new ArrayList<String>();

                List<Element> hijos = emt.getChildren();

                for (Element hijo : hijos) {

                    if (hijo.getAttribute("type", xmi) != null) {

                        if (hijo.getAttribute("type", xmi).getValue().compareTo("code:Signature") == 0) {

                            List<Element> parametros = hijo.getChildren();

                            for (Element parametro : parametros) {

                                if (parametro.getAttribute("kind") == null
                                        || parametro.getAttribute("kind").getValue().compareTo("return") != 0) {
                                    atributos.add(tipos.get(parametro.getAttribute("type").getValue()) + " "
                                            + parametro.getAttributeValue("name"));
                                } else {
                                    tipoRetorno = tipos.get(parametro.getAttribute("type").getValue());
                                }

                            }

                        }
                    } else if (hijo.getAttribute("snippet") != null) {

                        codigoFuente = hijo.getAttribute("snippet").getValue();

                    }

                }

                //System.out.println("MethodUnit!! " + emt.getName()+" "+emt.getAttribute("type",xmi)+" "+emt.getAttribute("name").getValue());
                //System.out.println(emt.getAttribute("name").getValue());

                if (tipoRetorno.compareTo("Void") == 0) {
                    tipoRetorno = "void";
                }

                contentInBytes = ("\t" + exportValue + " " + tipoRetorno + " " + nombreMetodo + " (")
                        .getBytes();

                fout.write(contentInBytes);
                fout.flush();
                int n = 0;
                for (String parametro : atributos) {

                    if (atributos.size() > 0 && n < atributos.size() - 1) {
                        contentInBytes = (" " + parametro + ",").getBytes();
                    } else {
                        contentInBytes = (" " + parametro).getBytes();
                    }

                    fout.write(contentInBytes);
                    fout.flush();
                    n++;
                }

                contentInBytes = (" ) {\n").getBytes();

                fout.write(contentInBytes);
                fout.flush();

                contentInBytes = ("\n/* \n " + codigoFuente + " \n */\n").getBytes();

                fout.write(contentInBytes);
                fout.flush();

                contentInBytes = ("\t}\n\n").getBytes();

                fout.write(contentInBytes);
                fout.flush();

                System.out.print("\t" + exportValue + " " + tipoRetorno + " " + nombreMetodo + " (");
                n = 0;
                for (String parametro : atributos) {
                    if (atributos.size() > 0 && n < atributos.size() - 1) {
                        System.out.print(" " + parametro + ", ");
                    } else {
                        System.out.print(" " + parametro);
                    }
                    n++;

                }
                System.out.println(" ) {");
                System.out.println("/* \n " + codigoFuente + " \n */");
                System.out.println("\t}\n");
            }

        }

        contentInBytes = ("}\n").getBytes();

        fout.write(contentInBytes);
        fout.flush();
        fout.close();

        XPathExpression<Attribute> xp = XPathFactory.instance().compile("//@*", Filters.attribute(xmi));
        for (Attribute a : xp.evaluate(doc)) {
            a.setName(a.getName().toLowerCase());
        }

        xpath = XPathFactory.instance().compile("//codeElement/@name='testvb.cls'", Filters.element());
        Element emt = xpath.evaluateFirst(doc);
        if (emt != null) {
            System.out.println("XPath has result: " + emt.getName());
        }

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JDOMException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

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;//from  w w  w .  ja  v a 2  s  .com

    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);

    }
}