Example usage for org.dom4j.io XMLWriter writeClose

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

Introduction

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

Prototype

protected void writeClose(String qualifiedName) throws IOException 

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();// w  w  w.j a va2 s .c o  m

    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  . ja  v a  2s. 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   ww  w . j a v a  2s.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");
    }/* w  ww  .  j  ava  2s .  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);
    }// w w  w  . j av a2  s.  co 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 {//from www  .  ja  va2  s  . 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);//w  ww. j a va2  s .com
        getConfigurationXML(writer, config);
        writer.writeClose(elConfigs);
    }
}

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.");
    }/*w w w  . j a  v  a2  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  w  w .j a  va 2 s  .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 w  w  .  j  a  v a2 s . co  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);
    }
}