/*
* Copyright 2012 McEvoy Software Ltd.
*/
package io.milton.http.webdav2;
import io.milton.resource.LockableResource;
import io.milton.http.XmlWriter;
import io.milton.http.XmlWriter.Element;
import io.milton.http.values.ValueWriter;
import io.milton.http.webdav.WebDavProtocol;
import io.milton.http.webdav.SupportedLocks;
import java.util.Map;
public class SupportedLockValueWriter implements ValueWriter {
private static final String D = WebDavProtocol.DAV_PREFIX;
@Override
public boolean supports(String nsUri, String localName, Class c) {
return SupportedLocks.class.isAssignableFrom(c);
}
@Override
public void writeValue(XmlWriter writer, String nsUri, String prefix, String localName, Object val, String href, Map<String, String> nsPrefixes) {
Element supportedLocks = writer.begin(D + ":supportedlock").open();
SupportedLocks slocks = (SupportedLocks) val;
if (slocks != null && slocks.getResource() instanceof LockableResource) {
Element lockentry = writer.begin(D + ":lockentry").open();
writer.begin(D + ":lockscope").open(false).writeText("<" + D + ":exclusive/>").close();
writer.begin(D + ":locktype").open(false).writeText("<" + D + ":write/>").close();
lockentry.close();
}
supportedLocks.close();
}
@Override
public Object parse(String namespaceURI, String localPart, String value) {
throw new UnsupportedOperationException("Not supported yet.");
}
}