List of usage examples for org.w3c.dom Element getNodeName
public String getNodeName();
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; }