Example usage for org.dom4j DocumentHelper createElement

List of usage examples for org.dom4j DocumentHelper createElement

Introduction

In this page you can find the example usage for org.dom4j DocumentHelper createElement.

Prototype

public static Element createElement(String name) 

Source Link

Usage

From source file:com.bstek.dorado.idesupport.output.RuleSetOutputter.java

License:Open Source License

public void output(Writer writer, RuleTemplateManager ruleTemplateManager) throws Exception {
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding(Constants.DEFAULT_CHARSET);

    XMLWriter xmlWriter = new XMLWriter(writer, format);
    xmlWriter.startDocument();//  ww  w  .j  a  v a  2 s .  c om

    Element rootElement = DocumentHelper.createElement("RuleSet");
    rootElement.addAttribute("version", ruleTemplateManager.getVersion());
    xmlWriter.writeOpen(rootElement);

    OutputContext context = new OutputContext();
    outputPackageInfos(xmlWriter, ruleTemplateManager, context);

    for (RuleTemplate ruleTemplate : ruleTemplateManager.getRuleTemplates()) {
        // PropertyDataType?
        // if (ruleTemplate.isAbstract()
        // && ruleTemplate.getSubRuleTemplates().length == 0) {
        // continue;
        // }
        outputRuleTemplate(xmlWriter, ruleTemplate, context);
    }

    xmlWriter.writeClose(rootElement);
    xmlWriter.endDocument();
    xmlWriter.close();
}

From source file:com.bstek.dorado.idesupport.output.RuleSetOutputter.java

License:Open Source License

protected void outputPackageInfos(XMLWriter xmlWriter, RuleTemplateManager ruleTemplateManager,
        OutputContext context) throws Exception {
    Map<String, PackageInfo> finalPackageInfos = new LinkedHashMap<String, PackageInfo>(
            PackageManager.getPackageInfoMap());

    Collection<PackageInfo> packageInfos = ruleTemplateManager.getPackageInfos();
    if (packageInfos != null) {
        for (PackageInfo packageInfo : packageInfos) {
            finalPackageInfos.put(packageInfo.getName(), packageInfo);
        }/*w ww  .  j av a  2 s  . c  om*/
    }

    Element packageInfosElement = DocumentHelper.createElement("PackageInfos");
    xmlWriter.writeOpen(packageInfosElement);
    for (PackageInfo packageInfo : finalPackageInfos.values()) {
        Element packageInfoElement = DocumentHelper.createElement("PackageInfo");
        setElementAttributes(packageInfoElement, packageInfo, "name,version");
        xmlWriter.write(packageInfoElement);
    }
    xmlWriter.writeClose(packageInfosElement);
}

From source file:com.bstek.dorado.idesupport.output.RuleSetOutputter.java

License:Open Source License

protected void outputRuleTemplate(XMLWriter xmlWriter, RuleTemplate ruleTemplate, OutputContext context)
        throws Exception {
    Element element = DocumentHelper.createElement("Rule");
    setElementAttribute(element, ruleTemplate, "name");

    RuleTemplate[] parents = ruleTemplate.getParents();
    if (parents != null && parents.length > 0) {
        String parentsText = "";
        for (RuleTemplate parent : parents) {
            if (parentsText.length() > 0)
                parentsText += ',';
            parentsText += parent.getName();
        }/*  www. j  a va 2 s .  c  o m*/
        element.addAttribute("parents", parentsText);
    }

    setElementAttributes(element, ruleTemplate,
            "label,abstract,nodeName,type,scope,sortFactor,category,robots,icon,labelProperty,autoGenerateId,clientTypes,deprecated,reserve");
    if (!ruleTemplate.isVisible()) {
        element.addAttribute("visible", "false");
    }

    xmlWriter.writeOpen(element);

    Collection<PropertyTemplate> primitiveProperties = ruleTemplate.getPrimitiveProperties().values();
    if (!primitiveProperties.isEmpty()) {
        Element subElement = DocumentHelper.createElement("PrimitiveProps");
        xmlWriter.writeOpen(subElement);
        for (PropertyTemplate property : primitiveProperties) {
            outputProperty(xmlWriter, property, context);
        }
        xmlWriter.writeClose(subElement);
    }

    Collection<PropertyTemplate> properties = ruleTemplate.getProperties().values();
    if (!properties.isEmpty()) {
        Element subElement = DocumentHelper.createElement("Props");
        xmlWriter.writeOpen(subElement);
        for (PropertyTemplate property : properties) {
            outputProperty(xmlWriter, property, context);
        }
        xmlWriter.writeClose(subElement);
    }

    Collection<ClientEvent> clientEvents = ruleTemplate.getClientEvents().values();
    if (!clientEvents.isEmpty()) {
        Element subElement = DocumentHelper.createElement("ClientEvents");
        xmlWriter.writeOpen(subElement);
        for (ClientEvent clientEvent : clientEvents) {
            outputClientEvent(xmlWriter, clientEvent, context);
        }
        xmlWriter.writeClose(subElement);
    }
    Collection<ChildTemplate> children = ruleTemplate.getChildren().values();
    if (!children.isEmpty()) {
        Element subElement = DocumentHelper.createElement("Children");
        xmlWriter.writeOpen(subElement);
        for (ChildTemplate childTemplate : children) {
            outputChildTemplate(xmlWriter, childTemplate, context);
        }
        xmlWriter.writeClose(subElement);
    }

    xmlWriter.writeClose(element);
}

From source file:com.bstek.dorado.idesupport.output.RuleSetOutputter.java

License:Open Source License

protected void outputProperty(XMLWriter xmlWriter, PropertyTemplate property, OutputContext context)
        throws Exception {
    Element element = DocumentHelper.createElement("Prop");
    setElementAttributes(element, property,
            "name,defaultValue,highlight,fixed,enumValues,editor,clientTypes,deprecated,reserve");
    if (!property.isVisible()) {
        element.addAttribute("visible", "false");
    }/*from w  ww.  jav a 2 s . c  o  m*/

    if (StringUtils.isNotEmpty(property.getType())) {
        try {
            Class<?> type = ClassUtils.forName(property.getType());
            if (!String.class.equals(type) && !type.isEnum()) {
                element.addAttribute("type", type.getName());
            }
        } catch (ClassNotFoundException e) {
            // do nothing
        }
    }

    CompositeType compositeType = property.getCompositeType();
    if (compositeType != CompositeType.Unsupport) {
        element.addAttribute("compositeType", compositeType.toString());
    }

    ReferenceTemplate reference = property.getReference();
    if (reference != null) {
        String referenceText = reference.getRuleTemplate().getName();
        if (StringUtils.isNotEmpty(reference.getProperty())) {
            referenceText += ':' + reference.getProperty();
        }
        element.addAttribute("reference", referenceText);
    }

    if (compositeType == CompositeType.Fixed || compositeType == CompositeType.Open) {
        xmlWriter.writeOpen(element);
        for (PropertyTemplate subProperty : property.getProperties().values()) {
            outputProperty(xmlWriter, subProperty, context);
        }
        xmlWriter.writeClose(element);
    } else {
        xmlWriter.write(element);
    }
}

From source file:com.bstek.dorado.idesupport.output.RuleSetOutputter.java

License:Open Source License

protected void outputClientEvent(XMLWriter xmlWriter, ClientEvent clientEvent, OutputContext context)
        throws Exception {
    Element element = DocumentHelper.createElement("ClientEvent");
    setElementAttributes(element, clientEvent, "name,parameters,clientTypes,deprecated,reserve");
    xmlWriter.write(element);/*from ww  w. j  a v a 2s.com*/
}

From source file:com.bstek.dorado.idesupport.output.RuleSetOutputter.java

License:Open Source License

protected void outputChildTemplate(XMLWriter xmlWriter, ChildTemplate childTemplate, OutputContext context)
        throws Exception {
    Element element = DocumentHelper.createElement("Child");

    RuleTemplate ruleTemplate = childTemplate.getRuleTemplate();
    String ruleName = ruleTemplate.getName();
    if (ruleTemplate.isGlobal()) {
        element.addAttribute("rule", ruleName);
    }/* ww  w . ja va  2 s  . c  o  m*/

    setElementAttributes(element, childTemplate, "name,fixed,aggregated,clientTypes,deprecated,reserve");
    if (!childTemplate.isPublic()) {
        element.addAttribute("public", Boolean.FALSE.toString());
    }
    if (!childTemplate.isVisible()) {
        element.addAttribute("visible", "false");
    }
    xmlWriter.writeOpen(element);

    if (!ruleTemplate.isGlobal()) {
        outputRuleTemplate(xmlWriter, ruleTemplate, context);
    }
    xmlWriter.writeClose(element);
}

From source file:com.cosmosource.common.service.UserMgrManager.java

/**
 * @??: ?xml?/*from  w w w . j  a  v a2  s .  c o  m*/
 * @param nodeId
 * @param orgid
 * @return
 */
public String getOrgTreeData(String orgid, String ctx, String type) {
    if ("init".equals(type)) {
        Document doc = DocumentHelper.createDocument();
        Element root = doc.addElement("tree");
        root.addAttribute("id", "0");

        TAcOrg org = (TAcOrg) dao.findById(TAcOrg.class, new Long(orgid));
        Element el = root.addElement("item");
        el.addAttribute("text", org.getOrgname());
        el.addAttribute("id", org.getOrgid() + "");
        // el.addAttribute("open", "1");
        el.addAttribute("child", "1");
        Element elx = el.addElement("userdata");
        elx.addAttribute("name", "url");
        elx.addText(ctx + "/common/userMgr/list.act?nodeId=" + org.getOrgid() + "&orgtype=" + org.getOrgtype());

        // getOrgTreeDoc(new Long(orgid), el, ctx, org.getOrgtype());
        return doc.asXML();
    } else {
        Element root = DocumentHelper.createElement("tree");
        root.addAttribute("id", orgid);
        List<TAcOrg> list = dao
                .findByHQL("select t from TAcOrg t where t.parentid=" + orgid + " order by orgcode ");
        if (list.size() <= 500) {
            for (TAcOrg org : list) {
                Element el = root.addElement("item");
                el.addAttribute("text", org.getOrgname());
                el.addAttribute("id", org.getOrgid() + "");
                if ("1".equals(org.getIsbottom())) {
                    el.addAttribute("child", "1");
                } else {
                    el.addAttribute("child", "0");
                }
                // if(org.getParentid()==0){
                // el.addAttribute("open", "1");
                // }
                Element elx = el.addElement("userdata");
                elx.addAttribute("name", "url");
                if (!org.getOrgtype().equals("3")) {
                    elx.addText(ctx + "/common/userMgr/list.act?nodeId=" + org.getOrgid() + "&orgtype="
                            + org.getOrgtype());
                } else {
                    elx.addText(ctx + "/common/userMgr/orgFrame.act?nodeId=" + org.getOrgid());
                }
            }
        }
        return root.asXML();
    }

}

From source file:com.doculibre.constellio.services.ElevateServicesImpl.java

License:Open Source License

private Element buildQueryElementFromCache(String queryText, String queryDisplayText, String collectionName) {
    Element queryElement;//from ww w  .jav a2  s .co m

    Map<String, List<String>> solrCoreElevationCache = elevationCache.get(collectionName);
    List<String> queryElevationCache = solrCoreElevationCache.get(queryText);

    Map<String, List<String>> solrCoreExclusionCache = exclusionCache.get(collectionName);
    List<String> queryExclusionCache = solrCoreExclusionCache.get(queryText);

    if ((queryElevationCache != null && !queryElevationCache.isEmpty())
            || (queryExclusionCache != null && !queryExclusionCache.isEmpty())) {
        queryElement = DocumentHelper.createElement("query");
        queryElement.addAttribute("text", queryText);
        queryElement.addAttribute("displayText", queryDisplayText);
        if (queryElevationCache != null) {
            for (String elevatedDocId : queryElevationCache) {
                Element docElement = DocumentHelper.createElement("doc");
                docElement.addAttribute("id", elevatedDocId);
                queryElement.add(docElement);
            }
        }

        if (queryExclusionCache != null) {
            for (String excludedDocId : queryExclusionCache) {
                Element docElement = DocumentHelper.createElement("doc");
                docElement.addAttribute("id", excludedDocId);
                docElement.addAttribute("exclude", "true");
                queryElement.add(docElement);
            }
        }
    } else {
        queryElement = null;
    }
    return queryElement;
}

From source file:com.doculibre.constellio.services.SolrServicesImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
private void updateSchemaFields(RecordCollection collection, Document schemaDocument) {
    Element fieldsElement = schemaDocument.getRootElement().element("fields");
    List<Element> fieldElements = fieldsElement.elements("field");
    for (Iterator<Element> it = fieldElements.iterator(); it.hasNext();) {
        it.next();//  w  w  w . ja va 2 s  . c  o m
        it.remove();
    }

    List<Element> copyFields = schemaDocument.getRootElement().elements("copyField");
    for (Iterator<Element> it = copyFields.iterator(); it.hasNext();) {
        it.next();
        it.remove();
    }

    List<Element> dynamicFieldElements = fieldsElement.elements("dynamicField");
    for (Iterator<Element> it = dynamicFieldElements.iterator(); it.hasNext();) {
        it.next();
        it.remove();
    }

    List<String> addedFieldNames = new ArrayList<String>();
    Collection<IndexField> indexFields = collection.getIndexFields();
    for (IndexField indexField : indexFields) {
        if (!addedFieldNames.contains(indexField.getName())) {
            addedFieldNames.add(indexField.getName());

            FieldType fieldType = indexField.getFieldType();
            Analyzer analyzer = indexField.getAnalyzer();
            if (fieldType == null) {
                throw new RuntimeException(indexField.getName() + " has no type");
            }
            Element fieldElement;
            if (indexField.isDynamicField()) {
                fieldElement = DocumentHelper.createElement("dynamicField");
            } else {
                fieldElement = DocumentHelper.createElement("field");
            }
            fieldsElement.add(fieldElement);
            addNotNullAttribute(fieldElement, "name", indexField.getName());
            addNotNullAttribute(fieldElement, "type", fieldType.getName());
            addNotNullAttribute(fieldElement, "indexed", indexField.isIndexed());
            addNotNullAttribute(fieldElement, "stored", true);
            addNotNullAttribute(fieldElement, "multiValued", indexField.isMultiValued());
            if (analyzer != null) {
                fieldElement.addAttribute("analyzer", analyzer.getAnalyzerClass().getClassName());
            }
        }
    }

    // used by solrcloud
    Element fieldElement = DocumentHelper.createElement("field");
    addNotNullAttribute(fieldElement, "name", "_version_");
    addNotNullAttribute(fieldElement, "type", "long");
    addNotNullAttribute(fieldElement, "indexed", true);
    addNotNullAttribute(fieldElement, "stored", true);
    fieldsElement.add(fieldElement);

    List<Element> uniqueKeyElements = schemaDocument.getRootElement().elements("uniqueKey");
    for (Iterator<Element> it = uniqueKeyElements.iterator(); it.hasNext();) {
        it.next();
        it.remove();
    }
    IndexField uniqueKeyField = collection.getUniqueKeyIndexField();
    if (uniqueKeyField != null) {
        Element uniqueKeyElement = DocumentHelper.createElement("uniqueKey");
        uniqueKeyElement.setText(uniqueKeyField.getName());
        schemaDocument.getRootElement().add(uniqueKeyElement);
    }

    List<Element> defaultSearchFieldElements = schemaDocument.getRootElement().elements("defaultSearchField");
    for (Iterator<Element> it = defaultSearchFieldElements.iterator(); it.hasNext();) {
        it.next();
        it.remove();
    }
    IndexField defaultSearchField = collection.getDefaultSearchIndexField();
    if (defaultSearchField != null) {
        Element defaultSearchFieldElement = DocumentHelper.createElement("defaultSearchField");
        defaultSearchFieldElement.setText(defaultSearchField.getName());
        schemaDocument.getRootElement().add(defaultSearchFieldElement);
    }

    List<Element> solrQueryParserElements = schemaDocument.getRootElement().elements("solrQueryParser");
    for (Iterator<Element> it = solrQueryParserElements.iterator(); it.hasNext();) {
        it.next();
        it.remove();
    }
    String queryParserOperator = collection.getQueryParserOperator();
    if (queryParserOperator != null) {
        Element solrQueryParserElement = DocumentHelper.createElement("solrQueryParser");
        solrQueryParserElement.addAttribute("defaultOperator", queryParserOperator);
        schemaDocument.getRootElement().add(solrQueryParserElement);
    }

    for (IndexField indexField : indexFields) {
        if (!indexField.isDynamicField()) {
            for (CopyField copyFieldDest : indexField.getCopyFieldsDest()) {
                Element copyFieldElement = DocumentHelper.createElement("copyField");
                String source;
                if (copyFieldDest.isSourceAllFields()) {
                    source = "*";
                } else {
                    IndexField indexFieldSource = copyFieldDest.getIndexFieldSource();
                    source = indexFieldSource.getName();
                }
                copyFieldElement.addAttribute("source", source);
                copyFieldElement.addAttribute("dest", copyFieldDest.getIndexFieldDest().getName());
                addNotNullAttribute(copyFieldElement, "maxChars", copyFieldDest);
                // Ajout Rida
                schemaDocument.getRootElement().add(copyFieldElement);
            }
        }
    }

    writeSchema(collection.getName(), schemaDocument);
}

From source file:com.doculibre.constellio.services.SolrServicesImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from   w  w  w. j  a  va 2 s  . c  o m*/
public void updateSchemaFieldTypes(RecordCollection collection) {
    String collectionName = SolrCoreContext.DEFAULT_COLLECTION_NAME;
    if (collection != null) {
        collectionName = collection.getName();
    }
    Document schemaDocument = readSchema(collectionName);
    Element typesElement = schemaDocument.getRootElement().element("types");
    List<Element> fieldTypeElements = typesElement.elements("fieldType");
    for (Iterator<Element> it = fieldTypeElements.iterator(); it.hasNext();) {
        it.next();
        it.remove();
    }
    FieldTypeServices fieldTypeServices = ConstellioSpringUtils.getFieldTypeServices();
    for (FieldType fieldType : fieldTypeServices.list()) {
        Element fieldTypeElement = DocumentHelper.createElement("fieldType");
        typesElement.add(fieldTypeElement);
        FieldTypeClass fieldTypeClass = fieldType.getFieldTypeClass();

        addNotNullAttribute(fieldTypeElement, "name", fieldType);
        addNotNullAttribute(fieldTypeElement, "class", fieldTypeClass.getClassName());
        addNotNullAttribute(fieldTypeElement, "indexed", fieldType);
        // Always true
        addNotNullAttribute(fieldTypeElement, "stored", true);
        addNotNullAttribute(fieldTypeElement, "multiValued", fieldType);
        addNotNullAttribute(fieldTypeElement, "omitNorms", fieldType);
        addNotNullAttribute(fieldTypeElement, "precisionStep", fieldType);
        addNotNullAttribute(fieldTypeElement, "positionIncrementGap", fieldType);
        addNotNullAttribute(fieldTypeElement, "sortMissingLast", fieldType);

        Analyzer analyzer = fieldType.getAnalyzer();
        Analyzer queryAnalyzer = fieldType.getQueryAnalyzer();

        if (analyzer != null) {
            Element analyzerElement = DocumentHelper.createElement("analyzer");
            fieldTypeElement.add(analyzerElement);
            if (queryAnalyzer != null) {
                analyzerElement.addAttribute("type", "index");
            }

            AnalyzerClass analyzerClass = analyzer.getAnalyzerClass();
            if (analyzerClass != null) {
                analyzerElement.addAttribute("class", analyzerClass.getClassName());
            }

            TokenizerClass tokenizerClass = analyzer.getTokenizerClass();
            if (tokenizerClass != null) {
                Element tokenizerElement = DocumentHelper.createElement("tokenizer");
                analyzerElement.add(tokenizerElement);
                tokenizerElement.addAttribute("class", tokenizerClass.getClassName());
            }

            Collection<AnalyzerFilter> filters = analyzer.getFilters();
            for (AnalyzerFilter filter : filters) {
                FilterClass filterClass = filter.getFilterClass();
                Element filterElement = DocumentHelper.createElement("filter");
                analyzerElement.add(filterElement);
                filterElement.addAttribute("class", filterClass.getClassName());
                addNotNullAttribute(filterElement, "catenateAll", filter);
                addNotNullAttribute(filterElement, "catenateWords", filter);
                addNotNullAttribute(filterElement, "delimiter", filter);
                addNotNullAttribute(filterElement, "enablePositionIncrements", filter);
                addNotNullAttribute(filterElement, "encoder", filter);
                addNotNullAttribute(filterElement, "expand", filter);
                addNotNullAttribute(filterElement, "generateNumberParts", filter);
                addNotNullAttribute(filterElement, "generateWordParts", filter);
                addNotNullAttribute(filterElement, "ignoreCase", filter);
                addNotNullAttribute(filterElement, "inject", filter);
                addNotNullAttribute(filterElement, "language", filter);
                addNotNullAttribute(filterElement, "pattern", filter);
                if (filter.getProtectedText() != null) {
                    filterElement.addAttribute("protected", filter.getProtectedText());
                }
                addNotNullAttribute(filterElement, "replace", filter);
                addNotNullAttribute(filterElement, "replacement", filter);
                addNotNullAttribute(filterElement, "splitOnCaseChange", filter);
                if (filter.getSynonymsText() != null) {
                    filterElement.addAttribute("synonyms", filter.getSynonymsText());
                }
                if (filter.getWordsText() != null) {
                    filterElement.addAttribute("words", filter.getWordsText());
                }
            }
        }

        if (queryAnalyzer != null) {
            Element analyzerElement = DocumentHelper.createElement("analyzer");
            fieldTypeElement.add(analyzerElement);
            analyzerElement.addAttribute("type", "query");

            AnalyzerClass analyzerClass = queryAnalyzer.getAnalyzerClass();
            if (analyzerClass != null) {
                analyzerElement.addAttribute("class", analyzerClass.getClassName());
            }

            TokenizerClass tokenizerClass = queryAnalyzer.getTokenizerClass();
            if (tokenizerClass != null) {
                Element tokenizerElement = DocumentHelper.createElement("tokenizer");
                analyzerElement.add(tokenizerElement);
                tokenizerElement.addAttribute("class", tokenizerClass.getClassName());
            }

            Collection<AnalyzerFilter> filters = queryAnalyzer.getFilters();
            for (AnalyzerFilter filter : filters) {
                FilterClass filterClass = filter.getFilterClass();
                Element filterElement = DocumentHelper.createElement("filter");
                analyzerElement.add(filterElement);
                filterElement.addAttribute("class", filterClass.getClassName());
                addNotNullAttribute(filterElement, "catenateAll", filter);
                addNotNullAttribute(filterElement, "catenateWords", filter);
                addNotNullAttribute(filterElement, "delimiter", filter);
                addNotNullAttribute(filterElement, "enablePositionIncrements", filter);
                addNotNullAttribute(filterElement, "encoder", filter);
                addNotNullAttribute(filterElement, "expand", filter);
                addNotNullAttribute(filterElement, "generateNumberParts", filter);
                addNotNullAttribute(filterElement, "generateWordParts", filter);
                addNotNullAttribute(filterElement, "ignoreCase", filter);
                addNotNullAttribute(filterElement, "inject", filter);
                addNotNullAttribute(filterElement, "language", filter);
                addNotNullAttribute(filterElement, "pattern", filter);
                if (filter.getProtectedText() != null) {
                    filterElement.addAttribute("protected", filter.getProtectedText());
                }
                addNotNullAttribute(filterElement, "replace", filter);
                addNotNullAttribute(filterElement, "replacement", filter);
                addNotNullAttribute(filterElement, "splitOnCaseChange", filter);
                if (filter.getSynonymsText() != null) {
                    filterElement.addAttribute("synonyms", filter.getSynonymsText());
                }
                if (filter.getWordsText() != null) {
                    filterElement.addAttribute("words", filter.getWordsText());
                }
            }
        }
    }
    writeSchema(collectionName, schemaDocument);
    if (collection != null) {
        // for _default_constellio, we do not need initialize
        initCore(collection);
    }
}