/* * Copyright 2012 McEvoy Software Ltd. */ package io.milton.http.webdav2; import io.milton.http.webdav.ResourceTypeHelper; import io.milton.http.webdav.WebDavResourceTypeHelper; import io.milton.resource.LockableResource; import io.milton.resource.Resource; import io.milton.webdav.utils.LockUtils; import java.util.List; import javax.xml.namespace.QName; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Advertises support for DAV level 2 for resources which support locking * * @author brad */ public class WebDavLevel2ResourceTypeHelper implements ResourceTypeHelper { private static final Logger log = LoggerFactory.getLogger(WebDavResourceTypeHelper.class); private final ResourceTypeHelper wrapped; public WebDavLevel2ResourceTypeHelper(ResourceTypeHelper wrapped) { this.wrapped = wrapped; } @Override public List<QName> getResourceTypes(Resource r) { return wrapped.getResourceTypes(r); } //Need to create a ArrayList as Arrays.asList returns a fixed length list which //cannot be extended. @Override public List<String> getSupportedLevels(Resource r) { List<String> list = wrapped.getSupportedLevels(r); if (r instanceof LockableResource) { LockUtils.add(list, "2"); } return list; } }