]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/dav/DavXmlElement.java
Massive package refactoring
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / dav / DavXmlElement.java
index a3929a02beb18be796f55fac30b037d511311cc1..06da6792c1d44b889de57a4653e64e74eccd2483 100644 (file)
@@ -1,15 +1,19 @@
 package org.argeo.cms.dav;
 
+import java.util.Comparator;
+import java.util.Objects;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
 import org.argeo.api.acr.QNamed;
 
-public enum DavXmlElement implements QNamed {
+enum DavXmlElement implements QNamed {
        response, //
        multistatus, //
        href, //
+       /** MUST be the same as DName.collection */
        collection, //
        prop, //
        resourcetype, //
@@ -20,6 +24,7 @@ public enum DavXmlElement implements QNamed {
        propname, //
        include, //
        propstat, //
+       status, //
 
        // locking
        lockscope, //
@@ -35,6 +40,19 @@ public enum DavXmlElement implements QNamed {
        final static String WEBDAV_NAMESPACE_URI = "DAV:";
        final static String WEBDAV_DEFAULT_PREFIX = "D";
 
+       final static Comparator<QName> QNAME_COMPARATOR = new Comparator<QName>() {
+
+               @Override
+               public int compare(QName qn1, QName qn2) {
+                       if (Objects.equals(qn1.getNamespaceURI(), qn2.getNamespaceURI())) {// same namespace
+                               return qn1.getLocalPart().compareTo(qn2.getLocalPart());
+                       } else {
+                               return qn1.getNamespaceURI().compareTo(qn2.getNamespaceURI());
+                       }
+               }
+
+       };
+
 //     private final QName value;
 //
 //     private DavXmlElement() {
@@ -70,7 +88,7 @@ public enum DavXmlElement implements QNamed {
                        return;
                }
                startElement(xsWriter);
-               xsWriter.writeCData(value);
+               xsWriter.writeCharacters(value);
                xsWriter.writeEndElement();
        }