]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/dav/DavXmlElement.java
First WebDav PROPFIND implementation server-side
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / dav / DavXmlElement.java
1 package org.argeo.cms.dav;
2
3 import javax.xml.namespace.QName;
4 import javax.xml.stream.XMLStreamException;
5 import javax.xml.stream.XMLStreamWriter;
6
7 import org.argeo.api.acr.QNamed;
8
9 public enum DavXmlElement implements QNamed {
10 response, //
11 multistatus, //
12 href, //
13 collection, //
14 prop, //
15 resourcetype, //
16
17 // propfind
18 propfind, //
19 allprop, //
20 propname, //
21 include, //
22 propstat, //
23
24 // locking
25 lockscope, //
26 locktype, //
27 supportedlock, //
28 lockentry, //
29 lockdiscovery, //
30 write, //
31 shared, //
32 exclusive, //
33 ;
34
35 final static String WEBDAV_NAMESPACE_URI = "DAV:";
36 final static String WEBDAV_DEFAULT_PREFIX = "D";
37
38 // private final QName value;
39 //
40 // private DavXmlElement() {
41 // this.value = new ContentName(getNamespace(), localName(), RuntimeNamespaceContext.getNamespaceContext());
42 // }
43 //
44 // @Override
45 // public QName qName() {
46 // return value;
47 // }
48
49 @Override
50 public String getNamespace() {
51 return WEBDAV_NAMESPACE_URI;
52 }
53
54 @Override
55 public String getDefaultPrefix() {
56 return WEBDAV_DEFAULT_PREFIX;
57 }
58
59 public static DavXmlElement toEnum(QName name) {
60 for (DavXmlElement e : values()) {
61 if (e.qName().equals(name))
62 return e;
63 }
64 return null;
65 }
66
67 public void setSimpleValue(XMLStreamWriter xsWriter, String value) throws XMLStreamException {
68 if (value == null) {
69 emptyElement(xsWriter);
70 return;
71 }
72 startElement(xsWriter);
73 xsWriter.writeCData(value);
74 xsWriter.writeEndElement();
75 }
76
77 public void emptyElement(XMLStreamWriter xsWriter) throws XMLStreamException {
78 xsWriter.writeEmptyElement(WEBDAV_NAMESPACE_URI, name());
79 }
80
81 public void startElement(XMLStreamWriter xsWriter) throws XMLStreamException {
82 xsWriter.writeStartElement(WEBDAV_NAMESPACE_URI, name());
83 }
84 }