Example usage for org.w3c.dom Element getNodeName

List of usage examples for org.w3c.dom Element getNodeName

Introduction

In this page you can find the example usage for org.w3c.dom Element getNodeName.

Prototype

public String getNodeName();

Source Link

Document

The name of this node, depending on its type; see the table above.

Usage

From source file:org.talend.mdm.webapp.browserecords.server.actions.BrowseRecordsAction.java

private ItemNodeModel builderNode(Map<String, Integer> multiNodeIndex, Element el, EntityModel entity,
        String baseXpath, String xpath, boolean isPolyType, StringBuffer foreignKeyDeleteMessage,
        boolean isCreate, boolean isStaging, String language) throws Exception {
    Map<String, TypeModel> metaDataTypes = entity.getMetaDataTypes();
    String realType = el.getAttribute("xsi:type"); //$NON-NLS-1$
    if (isPolyType) {
        xpath += ("".equals(xpath) ? el.getNodeName() : "/" + el.getNodeName()); //$NON-NLS-1$//$NON-NLS-2$
        if (realType != null && realType.trim().length() > 0) {
            xpath += ":" + realType; //$NON-NLS-1$
        }//from  w  w w.  j  av  a  2 s  . co  m
    } else {
        xpath += ("".equals(xpath) ? el.getNodeName() : "/" + el.getNodeName()); //$NON-NLS-1$//$NON-NLS-2$
    }
    String typePath;
    if ("".equals(baseXpath)) { //$NON-NLS-1$
        typePath = xpath.replaceAll("\\[\\d+\\]", ""); //$NON-NLS-1$//$NON-NLS-2$
    } else {
        typePath = (baseXpath + "/" + xpath).replaceAll("\\[\\d+\\]", ""); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
    }
    typePath = typePath.replaceAll(":" + realType + "$", ""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
    ItemNodeModel nodeModel = new ItemNodeModel(el.getNodeName());

    TypeModel model = findTypeModelByTypePath(metaDataTypes, typePath, language);
    nodeModel.setTypePath(model.getTypePath());
    nodeModel.setHasVisiblueRule(model.isHasVisibleRule());
    nodeModel.setHide(model.isHide());
    nodeModel.setVisible(!model.isHide());
    String realXPath = xpath;
    if (isPolyType) {
        realXPath = realXPath.replaceAll(":\\w+", ""); //$NON-NLS-1$//$NON-NLS-2$
    }

    if (model.getMaxOccurs() > 1 || model.getMaxOccurs() == -1) {

        Integer index = multiNodeIndex.get(realXPath);
        if (index == null) {
            nodeModel.setIndex(1);
            multiNodeIndex.put(realXPath, 1);
        } else {
            nodeModel.setIndex(index + 1);
            multiNodeIndex.put(realXPath, nodeModel.getIndex());
        }
    }

    if (realType != null && realType.trim().length() > 0) {
        nodeModel.setRealType(el.getAttribute("xsi:type")); //$NON-NLS-1$
    }
    nodeModel.setLabel(model.getLabel(language));
    nodeModel.setDescription(model.getDescriptionMap().get(language));
    nodeModel.setName(el.getNodeName());
    if (model.getMinOccurs() == 1 && model.getMaxOccurs() == 1) {
        nodeModel.setMandatory(true);
    }
    String foreignKey = findTypeModelByTypePath(metaDataTypes, typePath, language).getForeignkey();
    if (foreignKey != null && foreignKey.trim().length() > 0) {
        // set foreignKeyBean
        model.setRetrieveFKinfos(true);
        String modelType = el.getAttribute("tmdm:type"); //$NON-NLS-1$
        if (modelType != null && modelType.trim().length() > 0) {
            nodeModel.setTypeName(modelType);
        }
        ForeignKeyBean fkBean = org.talend.mdm.webapp.browserecords.server.util.CommonUtil.getForeignKeyDesc(
                model, el.getTextContent(), true, modelType, getEntityModel(foreignKey.split("/")[0], language), //$NON-NLS-1$
                isStaging, language);
        if (fkBean != null) {
            String fkNotFoundMessage = fkBean.get("foreignKeyDeleteMessage"); //$NON-NLS-1$
            if (fkNotFoundMessage != null) {// fix bug TMDM-2757
                if (foreignKeyDeleteMessage.indexOf(fkNotFoundMessage) == -1) {
                    foreignKeyDeleteMessage.append(fkNotFoundMessage).append("\r\n"); //$NON-NLS-1$
                }
                return nodeModel;
            }
            nodeModel.setObjectValue(fkBean);
        }
    } else if (model.isSimpleType()) {
        nodeModel.setObjectValue(el.getTextContent());
        org.talend.mdm.webapp.browserecords.server.util.CommonUtil.migrationMultiLingualFieldValue(null, model,
                el, typePath, false, nodeModel);
    }
    if (isCreate && model.getDefaultValueExpression() != null
            && model.getDefaultValueExpression().trim().length() > 0) {
        nodeModel.setChangeValue(true);
    }

    NodeList children = el.getChildNodes();
    if (children != null && !model.isSimpleType()) {
        List<TypeModel> childModels;
        if (nodeModel.getRealType() != null && nodeModel.getRealType().trim().length() > 0) {
            childModels = ((ComplexTypeModel) model).getRealType(nodeModel.getRealType()).getSubTypes();
        } else {
            if (!model.isAbstract()) {
                childModels = ((ComplexTypeModel) model).getSubTypes();
                if (childModels.size() == 0 && children.item(0) != null) {
                    TypeModel parentModel = model.getParentTypeModel();
                    while (parentModel != null) {
                        if (model.getType().getTypeName().equals(parentModel.getType().getTypeName())) {
                            List<TypeModel> types = ((ComplexTypeModel) parentModel).getSubTypes();
                            String parentPath = model.getTypePath();

                            for (TypeModel typeModel : types) {
                                String path = parentPath + "/" + typeModel.getName(); //$NON-NLS-1$
                                TypeModel childModel = null;
                                if (typeModel.isSimpleType()) {
                                    childModel = new SimpleTypeModel(typeModel.getName(), typeModel.getType());
                                } else {
                                    childModel = new ComplexTypeModel(typeModel.getName(), typeModel.getType());
                                }
                                childModel.setAbstract(typeModel.isAbstract());
                                childModel.setXpath(path);
                                childModel.setTypePath(path);
                                childModel.setTypePathObject(
                                        new TypePath(path, new HashMap<String, List<String>>()));
                                childModel.setNillable(typeModel.isNillable());
                                childModel.setMinOccurs(typeModel.getMinOccurs());
                                childModel.setMaxOccurs(typeModel.getMaxOccurs());
                                childModel.setParentTypeModel(model);
                                childModels.add(childModel);
                                metaDataTypes.put(path, childModel);
                            }
                            isModelUpdated = true;
                            break;
                        }
                        parentModel = parentModel.getParentTypeModel();
                    }
                }
            } else {
                childModels = org.talend.mdm.webapp.browserecords.shared.ReusableType
                        .getDefaultReusableTypeChildren((ComplexTypeModel) model, nodeModel);
            }
        }
        for (TypeModel typeModel : childModels) { // display tree node according to the studio default configuration
            boolean existNodeFlag = false;
            for (int i = 0; i < children.getLength(); i++) {
                Node child = children.item(i);
                if (child.getNodeType() == Node.ELEMENT_NODE) {
                    String tem_typePath;
                    if (realType != null && realType.trim().length() > 0) {
                        tem_typePath = typePath + ":" + realType + "/" + child.getNodeName(); //$NON-NLS-1$ //$NON-NLS-2$
                    } else {
                        tem_typePath = typePath + "/" + child.getNodeName(); //$NON-NLS-1$
                    }

                    if (typeModel.getTypePath().equals(tem_typePath) || (typeModel.getTypePathObject() != null
                            && typeModel.getTypePathObject().getAllAliasXpaths() != null
                            && typeModel.getTypePathObject().getAllAliasXpaths().contains(tem_typePath))) {
                        ItemNodeModel childNode = builderNode(multiNodeIndex, (Element) child, entity,
                                baseXpath, xpath, isPolyType, foreignKeyDeleteMessage, isCreate, isStaging,
                                language);
                        nodeModel.add(childNode);
                        existNodeFlag = true;
                        if (typeModel.getMaxOccurs() < 0 || typeModel.getMaxOccurs() > 1) {
                            continue;
                        } else {
                            break;
                        }
                    }
                }
            }
            if (!existNodeFlag) { // add default tree node when the node has not been saved in DB.
                nodeModel.add(org.talend.mdm.webapp.browserecords.server.util.CommonUtil
                        .getDefaultTreeModel(typeModel, isCreate, language).get(0));
            }
        }

    }
    for (String key : entity.getKeys()) {
        if (key.equals(realXPath)) {
            nodeModel.setKey(true);
        }
    }
    return nodeModel;

}

From source file:de.interactive_instruments.ShapeChange.Options.java

private List<TargetConfiguration> parseTargetConfigurations(Document configurationDocument)
        throws ShapeChangeAbortException {

    List<TargetConfiguration> tgtConfigs = new ArrayList<TargetConfiguration>();

    NodeList tgtsNl = configurationDocument.getElementsByTagName("targets");

    for (int i = 0; i < tgtsNl.getLength(); i++) {
        Node tgtsN = tgtsNl.item(i);
        NodeList tgtNl = tgtsN.getChildNodes();

        // look for all Target/TargetXmlSchema elements in the "targets"
        // Node//from   w ww. j  a v  a2s.c  o  m
        for (int j = 0; j < tgtNl.getLength(); j++) {
            Node tgtN = tgtNl.item(j);

            if (tgtN.getNodeType() == Node.ELEMENT_NODE) {
                Element tgtE = (Element) tgtN;

                // parse content of target element

                // get name of config element for decision which type of
                // TargetConfiguration to instantiate later on
                String tgtType = tgtE.getNodeName();

                // get class name
                String tgtConfigName = tgtE.getAttribute("class");

                // get mode
                ProcessMode tgtMode = this.parseMode(tgtE);

                Map<String, String> processParameters = parseParameters(tgtE, "targetParameter");

                // now look up all ProcessRuleSet elements, if there are
                // any
                Map<String, ProcessRuleSet> processRuleSets = parseRuleSets(tgtE, "EncodingRule", true);

                // get the target inputs - can be null, then set it to
                // global input element
                Set<String> tgtConfigInputs;
                if (tgtE.hasAttribute("inputs")) {
                    String[] inputs = tgtE.getAttribute("inputs").split("\\s");
                    tgtConfigInputs = new HashSet<String>(Arrays.asList(inputs));
                } else {
                    tgtConfigInputs = new HashSet<String>();
                    tgtConfigInputs.add(getInputId());
                }

                Element advancedProcessConfigurations = parseAdvancedProcessConfigurations(tgtE);

                TargetConfiguration tgtConfig;
                if (tgtType.equals("Target")) {
                    // now look up all ProcessMapEntry elements, if there
                    // are any
                    List<ProcessMapEntry> processMapEntries = parseProcessMapEntries(tgtE, "MapEntry");

                    // also parse namespaces, if there are any
                    List<Namespace> namespaces = parseNamespaces(tgtE);

                    // create target config and add it to list
                    tgtConfig = new TargetConfiguration(tgtConfigName, tgtMode, processParameters,
                            processRuleSets, processMapEntries, tgtConfigInputs, namespaces,
                            advancedProcessConfigurations);

                } else if (tgtType.equals("TargetOwl")) {

                    // now look up all ProcessMapEntry elements, if there
                    // are any
                    List<ProcessMapEntry> processMapEntries = parseProcessMapEntries(tgtE, "MapEntry");

                    // also parse namespaces, if there are any
                    List<Namespace> namespaces = parseNamespaces(tgtE);

                    // also parse stereotype mappings, if there are any
                    Map<String, String> stereotypeMappings = parseStereotypeMappings(tgtE);

                    // create target owl config and add it to list
                    tgtConfig = new TargetOwlConfiguration(tgtConfigName, tgtMode, processParameters,
                            processRuleSets, processMapEntries, tgtConfigInputs, namespaces, stereotypeMappings,
                            advancedProcessConfigurations);
                } else {
                    // We're dealing with a TargetXmlSchema element

                    List<XsdMapEntry> xsdMapEntries = parseXsdMapEntries(tgtE);

                    List<XmlNamespace> xmlNamespaces = parseXmlNamespaces(tgtE);

                    tgtConfig = new TargetXmlSchemaConfiguration(tgtConfigName, tgtMode, processParameters,
                            processRuleSets, null, xsdMapEntries, xmlNamespaces, tgtConfigInputs,
                            advancedProcessConfigurations);
                }
                tgtConfigs.add(tgtConfig);
            }
        }
    }
    return tgtConfigs;
}

From source file:lucee.runtime.config.ConfigWebFactory.java

/**
 * @param configServer/*w  w w. j  a v a 2 s  . c  o m*/
 * @param config
 * @param doc
 * @throws IOException
 */
private static void loadMail(ConfigServerImpl configServer, ConfigImpl config, Document doc)
        throws IOException {

    boolean hasAccess = ConfigWebUtil.hasAccess(config, SecurityManager.TYPE_MAIL);

    boolean hasCS = configServer != null;
    Element mail = getChildByName(doc.getDocumentElement(), "mail");

    // Spool Interval
    String strSpoolInterval = mail.getAttribute("spool-interval");
    if (!StringUtil.isEmpty(strSpoolInterval) && hasAccess) {
        config.setMailSpoolInterval(toInt(strSpoolInterval, 30));
    } else if (hasCS)
        config.setMailSpoolInterval(configServer.getMailSpoolInterval());

    String strEncoding = mail.getAttribute("default-encoding");
    if (!StringUtil.isEmpty(strEncoding) && hasAccess)
        config.setMailDefaultEncoding(strEncoding);
    else if (hasCS)
        config.setMailDefaultEncoding(configServer.getMailDefaultEncoding());

    // Spool Enable
    String strSpoolEnable = mail.getAttribute("spool-enable");
    if (!StringUtil.isEmpty(strSpoolEnable) && hasAccess) {
        config.setMailSpoolEnable(toBoolean(strSpoolEnable, false));
    } else if (hasCS)
        config.setMailSpoolEnable(configServer.isMailSpoolEnable());

    // Timeout
    String strTimeout = mail.getAttribute("timeout");
    if (!StringUtil.isEmpty(strTimeout) && hasAccess) {
        config.setMailTimeout(toInt(strTimeout, 60));
    } else if (hasCS)
        config.setMailTimeout(configServer.getMailTimeout());

    // Servers
    int index = 0;
    Server[] servers = null;
    Element[] elServers = getChildren(mail, "server");
    if (hasCS) {
        Server[] readOnlyServers = configServer.getMailServers();
        servers = new Server[readOnlyServers.length + (hasAccess ? elServers.length : 0)];
        for (int i = 0; i < readOnlyServers.length; i++) {
            servers[i] = readOnlyServers[index++].cloneReadOnly();
        }
    } else {
        servers = new Server[elServers.length];
    }
    if (hasAccess) {
        for (int i = 0; i < elServers.length; i++) {
            Element el = elServers[i];
            if (el.getNodeName().equals("server"))
                servers[index++] = new ServerImpl(el.getAttribute("smtp"), toInt(el.getAttribute("port"), 25),
                        el.getAttribute("username"), decrypt(el.getAttribute("password")),
                        toLong(el.getAttribute("life"), 1000 * 60 * 5),
                        toLong(el.getAttribute("idle"), 1000 * 60 * 1),
                        toBoolean(el.getAttribute("tls"), false), toBoolean(el.getAttribute("ssl"), false),
                        toBoolean(el.getAttribute("reuse-connection"), true));

        }
    }
    config.setMailServers(servers);
}

From source file:lucee.runtime.config.XMLConfigWebFactory.java

/**
 * @param configServer//from  w  ww. ja  va2s.co  m
 * @param config
 * @param doc
 * @throws IOException
 */
private static void loadMail(ConfigServerImpl configServer, ConfigImpl config, Document doc)
        throws IOException {

    boolean hasAccess = ConfigWebUtil.hasAccess(config, SecurityManager.TYPE_MAIL);

    boolean hasCS = configServer != null;
    Element mail = getChildByName(doc.getDocumentElement(), "mail");

    // Spool Interval
    String strSpoolInterval = mail.getAttribute("spool-interval");
    if (!StringUtil.isEmpty(strSpoolInterval) && hasAccess) {
        config.setMailSpoolInterval(Caster.toIntValue(strSpoolInterval, 30));
    } else if (hasCS)
        config.setMailSpoolInterval(configServer.getMailSpoolInterval());

    String strEncoding = mail.getAttribute("default-encoding");
    if (!StringUtil.isEmpty(strEncoding) && hasAccess)
        config.setMailDefaultEncoding(strEncoding);
    else if (hasCS)
        config.setMailDefaultEncoding(configServer.getMailDefaultCharset());

    // Spool Enable
    String strSpoolEnable = mail.getAttribute("spool-enable");
    if (!StringUtil.isEmpty(strSpoolEnable) && hasAccess) {
        config.setMailSpoolEnable(toBoolean(strSpoolEnable, false));
    } else if (hasCS)
        config.setMailSpoolEnable(configServer.isMailSpoolEnable());

    // Timeout
    String strTimeout = mail.getAttribute("timeout");
    if (!StringUtil.isEmpty(strTimeout) && hasAccess) {
        config.setMailTimeout(Caster.toIntValue(strTimeout, 60));
    } else if (hasCS)
        config.setMailTimeout(configServer.getMailTimeout());

    // Servers
    int index = 0;
    Server[] servers = null;
    Element[] elServers = getChildren(mail, "server");
    if (hasCS) {
        Server[] readOnlyServers = configServer.getMailServers();
        servers = new Server[readOnlyServers.length + (hasAccess ? elServers.length : 0)];
        for (int i = 0; i < readOnlyServers.length; i++) {
            servers[i] = readOnlyServers[index++].cloneReadOnly();
        }
    } else {
        servers = new Server[elServers.length];
    }
    if (hasAccess) {
        for (int i = 0; i < elServers.length; i++) {
            Element el = elServers[i];
            if (el.getNodeName().equals("server"))
                servers[index++] = new ServerImpl(el.getAttribute("smtp"),
                        Caster.toIntValue(el.getAttribute("port"), 25), el.getAttribute("username"),
                        ConfigWebUtil.decrypt(el.getAttribute("password")),
                        toBoolean(el.getAttribute("tls"), false), toBoolean(el.getAttribute("ssl"), false),
                        toBoolean(el.getAttribute("reuse-connection"), true));

        }
    }
    config.setMailServers(servers);
}

From source file:autohit.creator.compiler.SimCompiler.java

/**
 *  Every raw element will enter here.  Bascially, it dispatches it to it's specific
 *  handler.  It will do so for every child in the passed node. 
 *///from ww  w.j  av a2 s . co m
private void processCode(Element en) throws Exception {

    Element child;
    String name;
    int idx;
    Node scratchNode;
    NodeList itemTreeChildren = en.getChildNodes();

    //DEBUG
    //runtimeDebug("ENTER --- " + en.getTagName());

    for (idx = 0; idx < itemTreeChildren.getLength(); idx++) {

        scratchNode = itemTreeChildren.item(idx);

        // Only process elements
        if (!(scratchNode instanceof Element))
            continue;

        // Clean it
        child = (Element) scratchNode;
        name = child.getTagName().toLowerCase();

        // Parse the token and call a handler
        // Just not enough tokens to justify a state translation
        if (name.charAt(0) == 'a') {
            handleAssert(child);
        } else if (name.charAt(0) == 'b') {
            if (name.charAt(1) == 'l') {
                handleBlock(child);
            } else {
                handleBuffer(child);
            }
        } else if (name.charAt(0) == 'c') {
            handleCall(child);
        } else if (name.charAt(0) == 'e') {
            handleExec(child);
        } else if (name.charAt(0) == 'f') {
            handleFor(child);
        } else if (name.charAt(0) == 'g') {
            handleGoto(child);
        } else if (name.charAt(0) == 'i') {
            if (name.charAt(1) == 'n') {
                handleInput(child);
            } else {
                handleIf(child);
            }
        } else if (name.charAt(0) == 'l') {
            handleLabel(child);
        } else if (name.charAt(0) == 'm') {
            if (name.charAt(1) == 'e') {
                handleMethod(child);
            } else {
                handleMath(child);
            }
        } else if (name.charAt(0) == 's') {
            if (name.charAt(1) == 'e') {
                handleSet(child);
            } else {
                handleSubroutine(child);
            }
        } else if (name.charAt(0) == 'w') {
            handleWhile(child);
        } else if (name.charAt(0) == 'r') {
            handleReturn(child);
        } else {
            runtimeError("Software Detected Fault: autohit.creator.compiler.SimCompiler().  The textual token ["
                    + en.getNodeName()
                    + "] should have NOT reached this code. Check the XML DTD associated with the SimCompiler.");
            throw (new Exception("Software Detected Fault in creator.compiler.SimCompiler.processItem()."));
        }
    }
    //DEBUG
    //runtimeDebug("EXIT --- " + en.getTagName());
}

From source file:lucee.runtime.config.ConfigWebFactory.java

/**
 * @param configServer/*w w w.jav  a  2s .  c  om*/
 * @param config
 * @param doc
 */
private static void loadCFX(ConfigServerImpl configServer, ConfigImpl config, Document doc) {

    boolean hasAccess = ConfigWebUtil.hasAccess(config, SecurityManager.TYPE_CFX_SETTING);

    Map<String, CFXTagClass> map = MapFactory.<String, CFXTagClass>getConcurrentMap();
    if (configServer != null) {
        try {
            if (configServer.getCFXTagPool() != null) {
                Map<String, CFXTagClass> classes = configServer.getCFXTagPool().getClasses();
                Iterator<Entry<String, CFXTagClass>> it = classes.entrySet().iterator();
                Entry<String, CFXTagClass> e;
                while (it.hasNext()) {
                    e = it.next();
                    map.put(e.getKey(), e.getValue().cloneReadOnly());
                }
            }
        } catch (SecurityException e) {
        }
    }

    if (hasAccess) {
        if (configServer == null) {
            System.setProperty("cfx.bin.path", config.getConfigDir().getRealResource("bin").getAbsolutePath());
        }

        // Java CFX Tags
        Element cfxTagsParent = getChildByName(doc.getDocumentElement(), "ext-tags", false, true);
        if (cfxTagsParent == null)
            cfxTagsParent = getChildByName(doc.getDocumentElement(), "cfx-tags", false, true);
        if (cfxTagsParent == null)
            cfxTagsParent = getChildByName(doc.getDocumentElement(), "ext-tags");

        boolean oldStyle = cfxTagsParent.getNodeName().equals("cfx-tags");

        Element[] cfxTags = oldStyle ? getChildren(cfxTagsParent, "cfx-tag")
                : getChildren(cfxTagsParent, "ext-tag");
        for (int i = 0; i < cfxTags.length; i++) {
            String type = cfxTags[i].getAttribute("type");
            if (type != null) {
                // Java CFX Tags
                if (type.equalsIgnoreCase("java")) {
                    String name = cfxTags[i].getAttribute("name");
                    String clazz = deRailo(cfxTags[i].getAttribute("class"));
                    if (!StringUtil.isEmpty(name) && !StringUtil.isEmpty(clazz)) {
                        map.put(name.toLowerCase(), new JavaCFXTagClass(name, clazz));
                    }
                }
                // C++ CFX Tags
                else if (type.equalsIgnoreCase("cpp")) {
                    String name = cfxTags[i].getAttribute("name");
                    String serverLibrary = cfxTags[i].getAttribute("server-library");
                    String procedure = cfxTags[i].getAttribute("procedure");
                    boolean keepAlive = Caster.toBooleanValue(cfxTags[i].getAttribute("keep-alive"), false);

                    if (!StringUtil.isEmpty(name) && !StringUtil.isEmpty(serverLibrary)
                            && !StringUtil.isEmpty(procedure)) {
                        map.put(name.toLowerCase(),
                                new CPPCFXTagClass(name, serverLibrary, procedure, keepAlive));
                    }
                }
            }
        }

    }
    config.setCFXTagPool(map);
}

From source file:lucee.runtime.config.XMLConfigWebFactory.java

/**
 * @param configServer//from  w  w w  .  j  ava2  s.c  o  m
 * @param config
 * @param doc
 */
private static void loadCFX(ConfigServerImpl configServer, ConfigImpl config, Document doc) {

    boolean hasAccess = ConfigWebUtil.hasAccess(config, SecurityManager.TYPE_CFX_SETTING);

    Map<String, CFXTagClass> map = MapFactory.<String, CFXTagClass>getConcurrentMap();
    if (configServer != null) {
        try {
            if (configServer.getCFXTagPool() != null) {
                Map<String, CFXTagClass> classes = configServer.getCFXTagPool().getClasses();
                Iterator<Entry<String, CFXTagClass>> it = classes.entrySet().iterator();
                Entry<String, CFXTagClass> e;
                while (it.hasNext()) {
                    e = it.next();
                    map.put(e.getKey(), e.getValue().cloneReadOnly());
                }
            }
        } catch (SecurityException e) {
        }
    }

    if (hasAccess) {
        if (configServer == null) {
            System.setProperty("cfx.bin.path", config.getConfigDir().getRealResource("bin").getAbsolutePath());
        }

        // Java CFX Tags
        Element cfxTagsParent = getChildByName(doc.getDocumentElement(), "ext-tags", false, true);
        if (cfxTagsParent == null)
            cfxTagsParent = getChildByName(doc.getDocumentElement(), "cfx-tags", false, true);
        if (cfxTagsParent == null)
            cfxTagsParent = getChildByName(doc.getDocumentElement(), "ext-tags");

        boolean oldStyle = cfxTagsParent.getNodeName().equals("cfx-tags");

        Element[] cfxTags = oldStyle ? getChildren(cfxTagsParent, "cfx-tag")
                : getChildren(cfxTagsParent, "ext-tag");
        for (int i = 0; i < cfxTags.length; i++) {
            String type = cfxTags[i].getAttribute("type");
            if (type != null) {
                // Java CFX Tags
                if (type.equalsIgnoreCase("java")) {
                    String name = cfxTags[i].getAttribute("name");
                    ClassDefinition cd = getClassDefinition(cfxTags[i], "", config.getIdentification());
                    if (!StringUtil.isEmpty(name) && cd.hasClass()) {
                        map.put(name.toLowerCase(), new JavaCFXTagClass(name, cd));
                    }
                }
                // C++ CFX Tags
                else if (type.equalsIgnoreCase("cpp")) {
                    String name = cfxTags[i].getAttribute("name");
                    String serverLibrary = cfxTags[i].getAttribute("server-library");
                    String procedure = cfxTags[i].getAttribute("procedure");
                    boolean keepAlive = Caster.toBooleanValue(cfxTags[i].getAttribute("keep-alive"), false);

                    if (!StringUtil.isEmpty(name) && !StringUtil.isEmpty(serverLibrary)
                            && !StringUtil.isEmpty(procedure)) {
                        map.put(name.toLowerCase(),
                                new CPPCFXTagClass(name, serverLibrary, procedure, keepAlive));
                    }
                }
            }
        }

    }
    config.setCFXTagPool(map);
}

From source file:autohit.creator.compiler.SimCompiler.java

/**
 *  Processes info section tags. //from   www.  j  a v a 2s.c  o m
 */
private void processItem(Element en) throws Exception {
    String tempText;
    String name;
    //runtimeDebug("ENTER --- " + en.getTagName());
    name = en.getTagName().toLowerCase();
    NodeList itemTreeChildren;
    int idx;
    Node sNode;

    // Parse the token and call a handler
    if (name.charAt(0) == 'n') {
        if (name.charAt(1) == 'a') {
            //NAME
            tempText = getText(en.getFirstChild());
            if (tempText == null) {
                runtimeError("Empty <name> tag.");
            } else {
                ob.exec.name = tempText;
                runtimeDebug("TAG <name> name= " + ob.exec.name);
            }
            // optional uid attribute
            if (en.hasAttribute(ATTR_UID)) {
                ob.exec.uid = en.getAttribute(ATTR_UID);
                localname = ob.exec.uid;
                runtimeDebug("TAG <name> uid= " + ob.exec.uid);
            }
        } else {
            // NOTE - optional
            tempText = getText(en.getFirstChild());
            ob.exec.note = tempText;
        }
    } else if (name.charAt(0) == 'v') {
        // VERSION
        ob.exec.major = 0;
        try {
            if (en.hasAttribute(ATTR_VERSIONNUMBER)) {
                tempText = en.getAttribute(ATTR_VERSIONNUMBER);
                ob.exec.major = Integer.parseInt(tempText);
                runtimeDebug("TAG <version> num= " + ob.exec.major);
            } else {
                runtimeError("ERROR: TAG<version> Attr num not present.");
            }
        } catch (Exception e) {
            runtimeError("ERROR: TAG<version> Could not parse value for Attr num.");
        }

    } else if (name.charAt(0) == 'i') {
        if (name.charAt(1) == 'o') {
            // IO - Recurse with it's children.
            itemTreeChildren = en.getChildNodes();
            for (idx = 0; idx < itemTreeChildren.getLength(); idx++) {
                sNode = itemTreeChildren.item(idx);
                if (sNode instanceof Element) {
                    processItem((Element) sNode);
                }
            }
        } else {
            // INPUT - NOT SUPPORTED
        }

    } else if (name.charAt(0) == 'b') {
        // BUFFER - NOT SUPPORTED

    } else if (name.charAt(0) == 'o') {
        ob.exec.output = new NVPair();
        // OUTPUT - Specifies the output variable
        ob.exec.output.name = en.getAttribute(ATTR_NAME);
        if (en.hasAttribute(ATTR_TYPE)) {
            ob.exec.output.value = en.getAttribute(ATTR_TYPE);
        }

    } else {
        runtimeError("Software Detected Fault: creator.compiler.SimCompiler.processItem().  The textual token ["
                + en.getNodeName()
                + "] should have NOT reached this code. Check the XML DTD associated with the SimCompiler.");
        throw (new Exception("Software Detected Fault in creator.compiler.SimCompiler.processItem()."));
    }

    //DEBUG
    //runtimeDebug("EXIT --- " + en.getTagName());
}

From source file:com.enonic.vertical.engine.handlers.MenuHandler.java

private Hashtable<String, Element> appendMenuItemsBySettings(User user, Document doc,
        Hashtable<String, Element> hashtable_menus, MenuGetterSettings getterSettings) {

    Hashtable<String, Element> hashtable_MenuItems = new Hashtable<String, Element>();

    List<Integer> paramValues = new ArrayList<Integer>(2);
    StringBuffer sqlMenuItems = new StringBuffer(MENU_ITEM_SELECT);

    // menuKey//w ww. j  a  v  a2  s.co m
    MenuItemCriteria criteria = getterSettings.getMenuItemCriteria();
    if (getterSettings.hasMenuKeys() || criteria.hasMenuKey()) {
        if (getterSettings.hasMenuKeys()) {
            int[] menuKeys = getterSettings.getMenuKeys();
            sqlMenuItems.append(" AND men_lKey IN (");
            for (int i = 0; i < menuKeys.length; i++) {
                if (i > 0) {
                    sqlMenuItems.append(',');
                }
                sqlMenuItems.append(menuKeys[i]);
            }

            sqlMenuItems.append(')');
        } else {
            sqlMenuItems.append(" AND mei_men_lKey = ?");
            paramValues.add(criteria.getMenuKeyAsInteger());
        }
    }
    // only root menuitems
    if (getterSettings.getOnlyRootMenuItems()) {
        sqlMenuItems.append(" AND mei_lParent IS NULL");
    }

    if (user != null) {
        getSecurityHandler().appendMenuItemSQL(user, sqlMenuItems, criteria);
    }

    sqlMenuItems.append(ORDER_BY);

    Connection con = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;

    Element element_AdminReadMenuItems = doc.getDocumentElement();
    try {
        con = getConnection();

        statement = con.prepareStatement(sqlMenuItems.toString());

        int i = 1;
        for (Iterator<Integer> iter = paramValues.iterator(); iter.hasNext(); i++) {
            Object paramValue = iter.next();
            statement.setObject(i, paramValue);
        }

        try {
            // Hender ut menuitems
            resultSet = statement.executeQuery();
            while (resultSet.next()) {

                int curMenuItemKey = resultSet.getInt("mei_lKey");

                Element menuItem = buildMenuItemXML(doc, element_AdminReadMenuItems, resultSet, -1, false,
                        false, true, true, false, 1);
                Element accessRights = XMLTool.createElement(doc, menuItem, "accessrights");
                getSecurityHandler().appendAccessRightsOnMenuItem(user, curMenuItemKey, accessRights, true);

                XMLTool.createElement(doc, menuItem, "menuitems");
                // Lagrer referansen til kategori-elementet for raskt oppslag til senere bruk
                hashtable_MenuItems.put(String.valueOf(curMenuItemKey), menuItem);
            }
        } finally {
            close(resultSet);
            resultSet = null;
            close(statement);
            statement = null;
        }

        // Gr igjennom menuitems og bygger opp trestrukturen
        Element curAdminReadMenuItem = (Element) element_AdminReadMenuItems.getFirstChild();
        while (curAdminReadMenuItem != null) {

            String parentKey = curAdminReadMenuItem.getAttribute("parent");

            Element nextElement = (Element) curAdminReadMenuItem.getNextSibling();

            // Forelder node finnes ikke fra fr
            if ("menuitem".equals(curAdminReadMenuItem.getNodeName())) {
                insertParentMenuItem(user, MENU_ITEM_SELECT_BY_KEY, doc, element_AdminReadMenuItems,
                        hashtable_menus, hashtable_MenuItems, curAdminReadMenuItem, parentKey);
            }

            curAdminReadMenuItem = nextElement;
        }

    } catch (SQLException sqle) {
        String message = "Failed to get menuitems: %t";
        VerticalEngineLogger.error(this.getClass(), 0, message, sqle);
    } finally {
        close(resultSet);
        close(statement);
        close(con);
    }

    return hashtable_MenuItems;
}