Example usage for org.dom4j.io XMLWriter writeOpen

List of usage examples for org.dom4j.io XMLWriter writeOpen

Introduction

In this page you can find the example usage for org.dom4j.io XMLWriter writeOpen.

Prototype

public void writeOpen(Element element) throws IOException 

Source Link

Document

Writes the opening tag of an Element , including its Attribute s but without its content.

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.java2 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  w  w  .  jav  a2  s.c  o  m
    }

    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();
        }/*from   www .  j a  v a2  s . com*/
        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 ww  w .ja va2  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 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);
    }/*www.  j  av a2  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:org.itracker.web.util.ImportExportUtilities.java

License:Open Source License

public static void exportIssues(XMLWriter writer, List<Issue> issues, SystemConfiguration config)
        throws ImportExportException {
    Element elRoot = getDocumentFactory().createElement(TAG_ROOT);
    try {/*ww w.  j  a  v a 2s  . c om*/
        writer.startDocument();
        writer.writeOpen(elRoot);

        exportConfigModels(writer, config);
        exportIssuesModels(writer, issues);

        writer.writeClose(elRoot);
        writer.endDocument();
    } catch (SAXException e) {
        throw new ImportExportException(e.getMessage(), ImportExportException.TYPE_UNKNOWN);
    } catch (IOException e) {
        throw new ImportExportException("Problem writing export stream. " + e.getMessage(),
                ImportExportException.TYPE_UNKNOWN);
    }
}

From source file:org.itracker.web.util.ImportExportUtilities.java

License:Open Source License

public static void exportConfigModels(XMLWriter writer, SystemConfiguration config) throws IOException {

    if (config != null) {

        Element elConfigs = getDocumentFactory().createElement(TAG_CONFIGURATION);
        writer.writeOpen(elConfigs);
        getConfigurationXML(writer, config);
        writer.writeClose(elConfigs);/*from   ww w . jav  a  2  s.  c  o m*/
    }
}

From source file:org.itracker.web.util.ImportExportUtilities.java

License:Open Source License

public static void exportIssuesModels(XMLWriter writer, List<Issue> issues) throws IOException {
    HashMap<String, Project> projects = new HashMap<>();
    HashMap<String, User> users = new HashMap<>();

    if (issues == null || issues.size() == 0) {
        throw new IllegalArgumentException("The issue list was null or zero length.");
    }/*from ww  w.  j  a  va  2  s  .  c  o  m*/

    // initialize dataset
    for (Issue issue : issues) {
        if (!projects.containsKey(issue.getProject().getId().toString())) {
            if (logger.isDebugEnabled())
                logger.debug("Adding new project " + issue.getProject().getId() + " to export.");
            projects.put(issue.getProject().getId().toString(), issue.getProject());
        }

        if (issue.getCreator() != null && !users.containsKey(issue.getCreator().getId().toString())) {
            if (logger.isDebugEnabled())
                logger.debug("Adding new user " + issue.getCreator().getId() + " to export.");
            users.put(issue.getCreator().getId().toString(), issue.getCreator());
        }
        if (issue.getOwner() != null && !users.containsKey(issue.getOwner().getId().toString())) {
            if (logger.isDebugEnabled())
                logger.debug("Adding new user " + issue.getOwner().getId() + " to export.");
            users.put(issue.getOwner().getId().toString(), issue.getOwner());
        }

        List<IssueHistory> history = issue.getHistory();
        for (IssueHistory aHistory : history) {
            if (aHistory != null && aHistory.getUser() != null
                    && !users.containsKey(aHistory.getUser().getId().toString())) {
                if (logger.isDebugEnabled())
                    logger.debug("Adding new user " + aHistory.getUser().getId() + " to export.");
                users.put(aHistory.getUser().getId().toString(), aHistory.getUser());
            }
        }

        List<IssueAttachment> attachments = issue.getAttachments();
        for (IssueAttachment attachment : attachments) {
            if (attachment != null && attachment.getUser() != null
                    && !users.containsKey(attachment.getUser().getId().toString())) {
                if (logger.isDebugEnabled())
                    logger.debug("Adding new user " + attachment.getUser().getId() + " to export.");
                users.put(attachment.getUser().getId().toString(), attachment.getUser());
            }
        }
    }

    for (String s : projects.keySet()) {
        Project project = projects.get(s);
        for (User o : project.getOwners()) {
            users.put(o.getId().toString(), o);
        }
    }

    Element elUsers = getDocumentFactory().createElement(TAG_USERS);
    writer.writeOpen(elUsers);
    for (User u : users.values()) {
        exportModel(writer, u);
    }
    writer.writeClose(elUsers);

    Element elProjects = getDocumentFactory().createElement(TAG_PROJECTS);
    writer.writeOpen(elProjects);
    for (Project s : projects.values()) {
        exportModel(writer, s);
    }
    writer.writeClose(elProjects);

    Element elIssues = getDocumentFactory().createElement(TAG_ISSUES);
    writer.writeOpen(elIssues);
    for (Issue issue : issues) {
        exportModel(writer, issue);
    }
    writer.writeClose(elIssues);

}

From source file:org.itracker.web.util.ImportExportUtilities.java

License:Open Source License

private static void addIdCollection(XMLWriter writer, List<? extends AbstractEntity> entities, String elName,
        String itName, String idPrefix) throws IOException {
    if (entities.size() > 0) {
        Element elTmp;/*from   w ww  .j  a v  a  2s  .  co m*/
        final DocumentFactory factory = getDocumentFactory();
        final Element el = factory.createElement(elName);
        writer.writeOpen(el);
        for (AbstractEntity c : entities) {
            elTmp = factory.createElement(itName);
            elTmp.setText(idPrefix + c.getId());
            writer.write(elTmp);
        }
        writer.writeClose(el);
    }
}

From source file:org.itracker.web.util.ImportExportUtilities.java

License:Open Source License

private static void addIssueFields(XMLWriter writer, List<IssueField> entities) throws IOException {
    if (entities.size() > 0) {
        Element elTmp;//from   w ww  . j a v a  2  s  . c o m
        final DocumentFactory factory = getDocumentFactory();
        final Element el = factory.createElement(TAG_ISSUE_FIELDS);
        writer.writeOpen(el);
        for (IssueField c : entities) {
            elTmp = factory.createElement(TAG_ISSUE_FIELD);
            elTmp.addAttribute(ATTR_ID, TAG_CUSTOM_FIELD + c.getId());
            elTmp.add(factory.createCDATA(c.getValue(EXPORT_LOCALE)));
            writer.write(elTmp);
        }
        writer.writeClose(el);
    }
}