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