1 23 24 package org.apache.slide.webdav.util.resourcekind; 25 26 import java.util.Set ; 27 28 29 public class DeltavCompliantImpl extends AbstractResourceKind implements DeltavCompliant { 30 31 protected static ResourceKind singleton = null; 32 33 36 static public ResourceKind getInstance() { 37 if( singleton == null ) 38 singleton = new DeltavCompliantImpl(); 39 return singleton; 40 } 41 42 45 protected DeltavCompliantImpl() { 46 } 47 48 57 public Set getSupportedLiveProperties( String [] excludedFeatures ) { 58 Set s = super.getSupportedLiveProperties( excludedFeatures ); 59 s.add( P_CREATIONDATE ); 60 s.add( P_MODIFICATIONDATE ); 61 s.add( P_DISPLAYNAME ); 62 s.add( P_GETCONTENTLANGUAGE ); 63 s.add( P_GETCONTENTLENGTH ); 64 s.add( P_GETCONTENTTYPE ); 65 s.add( P_GETETAG ); 66 s.add( P_GETLASTMODIFIED ); 67 s.add( P_RESOURCETYPE ); 68 s.add( P_SOURCE ); 69 if( isSupportedFeature(F_LOCKING, excludedFeatures) ) { 70 s.add( P_LOCKDISCOVERY ); 71 s.add( P_SUPPORTEDLOCK ); 72 } 73 if( isSupportedFeature(F_ACCESS_CONTROL, excludedFeatures) ) { 74 s.add( P_OWNER ); 75 s.add( P_CREATIONUSER ); 76 s.add( P_MODIFICATIONUSER ); 77 s.add( P_SUPPORTED_PRIVILEGE_SET ); 78 s.add( P_CURRENT_USER_PRIVILEGE_SET ); 79 s.add( P_ACL ); 80 s.add( P_ACL_RESTRICTIONS ); 81 s.add( P_INHERITED_ACL_SET ); 82 s.add( P_PRINCIPAL_COLLECTION_SET ); 83 s.add( P_PRIVILEGE_COLLECTION_SET ); 84 } 85 if (isSupportedFeature(F_BINDING, excludedFeatures)) { 86 s.add( P_RESOURCE_ID ); 87 s.add( P_PARENT_SET ); 88 } 89 if( isSupportedFeature(F_VERSION_CONTROL, excludedFeatures) ) { 90 s.add( P_COMMENT ); 91 s.add( P_CREATOR_DISPLAYNAME ); 92 s.add( P_SUPPORTED_METHOD_SET ); 93 s.add( P_SUPPORTED_LIVE_PROPERTY_SET ); 94 s.add( P_SUPPORTED_REPORT_SET ); 95 } 96 if( isSupportedFeature(F_WORKSPACE, excludedFeatures) ) 97 s.add( P_WORKSPACE ); 98 if( isSupportedFeature(F_BASELINE, excludedFeatures) ) 99 s.add( P_VERSION_CONTROLLED_CONFIGURATION ); 100 return s; 101 } 102 103 106 public Set getSupportedMethods() { 107 Set s = super.getSupportedMethods(); 108 s.add( M_CONNECT ); 109 s.add( M_COPY ); 110 s.add( M_DELETE ); 111 s.add( M_GET ); 112 s.add( M_HEAD ); 113 s.add( M_MOVE ); 114 s.add( M_OPTIONS ); 115 s.add( M_POST ); 116 s.add( M_PROPFIND ); 117 s.add( M_PROPPATCH ); 118 s.add( M_PUT ); 119 s.add( M_TRACE ); 120 if( isSupportedFeature(F_LOCKING) ) { 121 s.add( M_LOCK ); 122 s.add( M_UNLOCK ); 123 } 124 if( isSupportedFeature(F_ACCESS_CONTROL) ) 125 s.add( M_ACL ); 126 if( isSupportedFeature(F_ACCESS_CONTROL) || isSupportedFeature(F_VERSION_CONTROL) ) 127 s.add( M_REPORT ); 128 if( isSupportedFeature(F_SEARCHING_AND_LOCATING) ) { 129 s.add( M_SEARCH ); 130 } 131 return s; 132 } 133 134 137 public Set getSupportedReports() { 138 Set s = super.getSupportedReports(); 139 if( isSupportedFeature(F_ACCESS_CONTROL) || isSupportedFeature(F_VERSION_CONTROL) ) 140 s.add( R_EXPAND_PROPERTY ); 141 return s; 142 } 143 } 144 145 | Popular Tags |