Package org.apache.lenya.xml

Examples of org.apache.lenya.xml.NamespaceHelper


                this.lastModified = SourceUtil.getLastModified(getSourceUri(), this.manager);
                Document xml = SourceUtil.readDOM(getSourceUri(), this.manager);

                Assert.isTrue("document element is <inbox>", xml.getDocumentElement()
                        .getLocalName().equals("inbox"));
                NamespaceHelper helper = new NamespaceHelper(Notifier.NAMESPACE, "", xml);

                Element[] messageElements = helper.getChildren(xml.getDocumentElement(), "message");
                for (int i = 0; i < messageElements.length; i++) {
                   
                    String id;
                    if (messageElements[i].hasAttribute("id")) {
                        id = messageElements[i].getAttribute("id");
                    }
                    else {
                        id = generateId();
                    }
                   
                    String senderId = messageElements[i].getAttribute("sender");
                    User sender = getUser(senderId);

                    Element recipientElement = helper.getFirstChild(messageElements[i],
                            "recipients");

                    Element[] userElements = helper.getChildren(recipientElement, "user");
                    Element[] groupElements = helper.getChildren(recipientElement, "group");

                    Identifiable[] recipients = new Identifiable[userElements.length
                            + groupElements.length];

                    for (int u = 0; u < userElements.length; u++) {
                        String userId = userElements[u].getAttribute("id");
                        recipients[u] = getUser(userId);
                    }

                    for (int g = 0; g < groupElements.length; g++) {
                        String groupId = groupElements[g].getAttribute("id");
                        recipients[userElements.length + g] = getGroup(groupId);
                    }

                    Element bodyElement = helper.getFirstChild(messageElements[i], "body");
                    Element bodyTextElement = helper.getFirstChild(bodyElement, "text");
                    String body = DocumentHelper.getSimpleElementText(bodyTextElement);
                    Element[] bodyParamElements = helper.getChildren(bodyElement, "param");
                    String[] bodyParams = new String[bodyParamElements.length];
                    for (int p = 0; p < bodyParamElements.length; p++) {
                        bodyParams[p] = DocumentHelper.getSimpleElementText(bodyParamElements[p]);
                    }

                    Element subjectElement = helper.getFirstChild(messageElements[i], "subject");
                    Element subjectTextElement = helper.getFirstChild(subjectElement, "text");
                    String subject = DocumentHelper.getSimpleElementText(subjectTextElement);
                    Element[] subjectParamElements = helper.getChildren(subjectElement, "param");
                    String[] subjectParams = new String[subjectParamElements.length];
                    for (int p = 0; p < subjectParamElements.length; p++) {
                        subjectParams[p] = DocumentHelper
                                .getSimpleElementText(subjectParamElements[p]);
                    }
View Full Code Here


            if (this.lastModified > -1 && newLastModified > this.lastModified) {
                throw new RuntimeException("The inbox file [" + getSourceUri()
                        + "] has been changed externally and can't be saved.");
            }

            NamespaceHelper helper = buildXml();
            SourceUtil.writeDOM(helper.getDocument(), getSourceUri(), this.manager);
            this.lastModified = SourceUtil.getLastModified(getSourceUri(), this.manager);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
View Full Code Here

            throw new RuntimeException(e);
        }
    }

    protected NamespaceHelper buildXml() throws ParserConfigurationException {
        NamespaceHelper helper = new NamespaceHelper(Notifier.NAMESPACE, "", "inbox");

        InboxMessage[] messages = getMessages();
        for (int i = 0; i < messages.length; i++) {
           
            Message message = messages[i].getMessage();
           
            Element messageElement = helper.createElement("message");
            helper.getDocument().getDocumentElement().appendChild(messageElement);
            User sender = (User) message.getSender();
            messageElement.setAttribute("sender", sender.getId());

            Element recipientsElement = helper.createElement("recipients");
            messageElement.appendChild(recipientsElement);

            Identifiable[] recipients = message.getRecipients();
            for (int r = 0; r < recipients.length; r++) {
                if (recipients[r] instanceof User) {
                    Element userElement = helper.createElement("user");
                    userElement.setAttribute("id", ((User) recipients[r]).getId());
                    recipientsElement.appendChild(userElement);
                } else if (recipients[r] instanceof Group) {
                    Element groupElement = helper.createElement("group");
                    groupElement.setAttribute("id", ((Group) recipients[r]).getId());
                    recipientsElement.appendChild(groupElement);
                }
            }

            Element subjectElement = helper.createElement("subject");
            messageElement.appendChild(subjectElement);
            Element subjectTextElement = helper.createElement("text", message.getSubject());
            subjectElement.appendChild(subjectTextElement);
            String[] subjectParams = message.getSubjectParameters();
            for (int p = 0; p < subjectParams.length; p++) {
                Element paramElement = helper.createElement("param", subjectParams[p]);
                subjectElement.appendChild(paramElement);
            }

            Element bodyElement = helper.createElement("body");
            messageElement.appendChild(bodyElement);
            Element bodyTextElement = helper.createElement("text", message.getBody());
            bodyElement.appendChild(bodyTextElement);
            String[] bodyParams = message.getBodyParameters();
            for (int p = 0; p < bodyParams.length; p++) {
                Element paramElement = helper.createElement("param", bodyParams[p]);
                bodyElement.appendChild(paramElement);
            }
           
            messageElement.setAttribute("read", Boolean.toString(messages[i].isMarkedAsRead()));
            messageElement.setAttribute("id", messages[i].getId());
View Full Code Here

                    String localName = docElement.getLocalName();

                    if (namespaceUri == null) {
                        this.dom = DocumentHelper.createDocument(null, localName, null);
                    } else {
                        NamespaceHelper helper = new NamespaceHelper(namespaceUri, prefix,
                                localName);
                        this.dom = helper.getDocument();
                    }
                }

                Element[] elements = DocumentHelper.getChildren(docElement);
                for (int e = 0; e < elements.length; e++) {
View Full Code Here

    }

    public void addLabel(String language, String label) throws SiteException {
        Assert.isTrue("not contains " + language, !hasLink(language));

        NamespaceHelper helper = getNamespaceHelper();
        Element labelElem = helper.createElement(SiteTreeNodeImpl.LABEL_NAME, label);
        labelElem.setAttribute(SiteTreeNodeImpl.LANGUAGE_ATTRIBUTE_NAME, language);
        node.insertBefore(labelElem, node.getFirstChild());
        getTree().changed();
    }
View Full Code Here

     * @see org.apache.lenya.cms.site.tree.SiteTreeNode#getChildren()
     */
    public SiteNode[] getChildren() {
        List childElements = new ArrayList();

        NamespaceHelper helper = getNamespaceHelper();
        Element[] elements = helper.getChildren((Element) this.node, SiteTreeNodeImpl.NODE_NAME);

        for (int i = 0; i < elements.length; i++) {
            SiteTreeNode newNode = new SiteTreeNodeImpl(this.factory, getTree(), elements[i],
                    getLogger());
            childElements.add(newNode);
View Full Code Here

    /**
     * @see org.apache.lenya.cms.site.tree.SiteTreeNode#removeChildren()
     */
    public SiteTreeNode[] removeChildren() {
        List childElements = new ArrayList();
        NamespaceHelper helper = getNamespaceHelper();
        Element[] elements = helper.getChildren((Element) this.node, SiteTreeNodeImpl.NODE_NAME);
        for (int i = 0; i < elements.length; i++) {
            this.node.removeChild(elements[i]);
            SiteTreeNode newNode = new SiteTreeNodeImpl(this.factory, getTree(), elements[i],
                    getLogger());
            childElements.add(newNode);
View Full Code Here

     * @see org.apache.lenya.cms.site.tree.SiteTreeNode#getNextSiblings()
     */
    public SiteTreeNode[] getNextSiblings() {
        List siblingElements = new ArrayList();

        NamespaceHelper helper = getNamespaceHelper();
        Element[] elements = helper
                .getNextSiblings((Element) this.node, SiteTreeNodeImpl.NODE_NAME);

        for (int i = 0; i < elements.length; i++) {
            SiteTreeNode newNode = new SiteTreeNodeImpl(this.factory, getTree(), elements[i],
                    getLogger());
View Full Code Here

     * @see org.apache.lenya.cms.site.tree.SiteTreeNode#getPrecedingSiblings()
     */
    public SiteTreeNode[] getPrecedingSiblings() {
        List siblingElements = new ArrayList();

        NamespaceHelper helper = getNamespaceHelper();
        Element[] elements = helper.getPrecedingSiblings((Element) this.node,
                SiteTreeNodeImpl.NODE_NAME);

        for (int i = 0; i < elements.length; i++) {
            SiteTreeNode newNode = new SiteTreeNodeImpl(this.factory, getTree(), elements[i],
                    getLogger());
View Full Code Here

    /**
     * Returns the namespace helper of the sitetree XML document.
     * @return A namespace helper.
     */
    protected NamespaceHelper getNamespaceHelper() {
        NamespaceHelper helper = new NamespaceHelper(DefaultSiteTree.NAMESPACE_URI, "", this.node
                .getOwnerDocument());
        return helper;
    }
View Full Code Here

TOP

Related Classes of org.apache.lenya.xml.NamespaceHelper

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.