1 package com.bradmcevoy.http.values;
2
3 import com.bradmcevoy.http.LockInfo;
4 import com.bradmcevoy.http.LockToken;
5 import com.bradmcevoy.http.XmlWriter;
6 import com.bradmcevoy.http.XmlWriter.Element;
7 import com.bradmcevoy.http.webdav.LockWriterHelper;
8 import java.util.Map;
9
10 public class LockTokenValueWriter implements ValueWriter {
11
12 private LockWriterHelper lockWriterHelper = new LockWriterHelper();
13
14 public LockWriterHelper getLockWriterHelper() {
15 return lockWriterHelper;
16 }
17
18 public void setLockWriterHelper( LockWriterHelper lockWriterHelper ) {
19 this.lockWriterHelper = lockWriterHelper;
20 }
21
22 public boolean supports( String nsUri, String localName, Class c ) {
23 return LockToken.class.isAssignableFrom( c );
24 }
25
26 public void writeValue( XmlWriter writer, String nsUri, String prefix, String localName, Object val, String href, Map<String, String> nsPrefixes ) {
27 LockToken token = (LockToken) val;
28 Element lockentry = writer.begin( "D:lockdiscovery" ).open();
29 if( token != null ) {
30 LockInfo info = token.info;
31 lockWriterHelper.appendType( writer, info.type );
32 lockWriterHelper.appendScope( writer, info.scope );
33 lockWriterHelper.appendDepth( writer, info.depth );
34 lockWriterHelper.appendOwner( writer, info.lockedByUser );
35 lockWriterHelper.appendTimeout( writer, token.timeout.getSeconds() );
36 lockWriterHelper.appendTokenId( writer, token.tokenId );
37 lockWriterHelper.appendRoot( writer, href );
38 }
39 lockentry.close();
40 }
41
42 public Object parse( String namespaceURI, String localPart, String value ) {
43 throw new UnsupportedOperationException( "Not supported yet." );
44 }
45 }