luetzkendorf 2004/12/21 08:19:50
Modified: src/webdav/server/org/apache/slide/webdav/util/properties
AbstractPropertyDefinition.java
AclRestrictionsProperty.java PropertyManager.java
src/webdav/server/org/apache/slide/webdav/util/resourcekind
AbstractResourceKind.java ResourceKind.java
Added: src/webdav/server/org/apache/slide/webdav/util/properties
PropertyComputer.java PropertyDefaultProvider.java
src/webdav/server/org/apache/slide/webdav/util/resourcekind
resource_kinds.dtd resource_kinds.xml
ResourceKindImpl.java ResourceKindManager.java
Removed: src/webdav/server/org/apache/slide/webdav/util/properties
PropertyDefinition.java
Log:
next step in restructureing live-properties management
Revision Changes Path
1.2 +1 -1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/AbstractPropertyDefinition.java
Index: AbstractPropertyDefinition.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/AbstractPropertyDefinition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractPropertyDefinition.java 15 Dec 2004 18:03:03 -0000 1.1
+++ AbstractPropertyDefinition.java 21 Dec 2004 16:19:49 -0000 1.2
@@ -8,7 +8,7 @@
/**
* @author Stefan L�tzkendorf
*/
-public abstract class AbstractPropertyDefinition implements
PropertyDefinition
+public abstract class AbstractPropertyDefinition implements PropertyComputer
{
public Object createDefaultValue(NamespaceAccessToken accessToken,
1.2 +1 -1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/AclRestrictionsProperty.java
Index: AclRestrictionsProperty.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/AclRestrictionsProperty.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AclRestrictionsProperty.java 15 Dec 2004 18:03:03 -0000 1.1
+++ AclRestrictionsProperty.java 21 Dec 2004 16:19:49 -0000 1.2
@@ -31,7 +31,7 @@
{
// no restrictions in Slide implementation?
if (revisionDescriptor.exists(AclConstants.PN_ACL_RESTRICTIONS)) {
- Object v =
revisionDescriptor.getProperty(AclConstants.P_ACL_RESTRICTIONS).getValue();
+ Object v =
revisionDescriptor.getProperty(AclConstants.PN_ACL_RESTRICTIONS).getValue();
try {
return (v instanceof XMLValue)
? (XMLValue)v
1.2 +10 -6
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/PropertyManager.java
Index: PropertyManager.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/PropertyManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PropertyManager.java 15 Dec 2004 18:03:03 -0000 1.1
+++ PropertyManager.java 21 Dec 2004 16:19:49 -0000 1.2
@@ -53,10 +53,17 @@
public static PropertyManager getInstance() {
return INSTANCE;
}
-
+
+ public boolean isComputedProperty(PropertyName property) {
+ return this.computesProperties.containsKey(property);
+ }
+ public PropertyComputer getComputedProperty(PropertyName name) {
+ return (PropertyComputer)this.computesProperties.get(name);
+ }
public Iterator getComputedProperties() {
return null;
}
+
public Iterator getProtectedProperties() {
return null;
}
@@ -64,17 +71,14 @@
return null;
}
- public PropertyDefinition getPropertyDefinition(PropertyName
propertyName) {
+ public PropertyComputer getPropertyDefinition(PropertyName propertyName)
{
return null;
}
- public void registerProperty(PropertyDefinition definition) {
+ public void registerProperty(PropertyComputer definition) {
if (definition.isComputed()) {
this.computesProperties.put(definition.getPropertyName(),definition);
}
}
- public PropertyDefinition getComputedProperty(PropertyName name) {
- return (PropertyDefinition)this.computesProperties.get(name);
- }
}
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/PropertyComputer.java
Index: PropertyComputer.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.slide.webdav.util.properties;
import org.apache.slide.common.NamespaceAccessToken;
import org.apache.slide.common.PropertyName;
import org.apache.slide.common.SlideException;
import org.apache.slide.content.NodeRevisionDescriptor;
import org.apache.slide.content.NodeRevisionDescriptors;
import org.apache.slide.webdav.util.WebdavContext;
import org.apache.slide.webdav.util.resourcekind.ResourceKind;
/**
* @author Stefan L�tzkendorf
*/
public interface PropertyComputer
{
public PropertyName getPropertyName();
public boolean isLive();
public boolean isProtected();
public boolean isComputed();
public Object createDefaultValue(
NamespaceAccessToken accessToken,
ResourceKind resourceKind,
String resourcePath)
throws UnsupportedOperationException;
public boolean isSupportedPropertyValue(Object value);
public Object computeValue(
NamespaceAccessToken nsaToken,
NodeRevisionDescriptors revisionDescriptors,
NodeRevisionDescriptor revisionDescriptor,
WebdavContext context)
throws SlideException, UnsupportedOperationException;
}
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/properties/PropertyDefaultProvider.java
Index: PropertyDefaultProvider.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.slide.webdav.util.properties;
/**
* Interface for objects that can provide default values for properties.
*/
public interface PropertyDefaultProvider
{
}
1.34 +20 -4
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/AbstractResourceKind.java
Index: AbstractResourceKind.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/AbstractResourceKind.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- AbstractResourceKind.java 15 Dec 2004 18:03:04 -0000 1.33
+++ AbstractResourceKind.java 21 Dec 2004 16:19:49 -0000 1.34
@@ -36,6 +36,7 @@
import org.apache.slide.common.NamespaceAccessToken;
import org.apache.slide.common.NamespaceConfig;
+import org.apache.slide.common.PropertyName;
import org.apache.slide.content.NodeRevisionDescriptor;
import org.apache.slide.content.NodeRevisionDescriptors;
import org.apache.slide.util.Configuration;
@@ -46,6 +47,7 @@
import org.apache.slide.webdav.util.DeltavConstants;
import org.apache.slide.webdav.util.UriHandler;
import org.apache.slide.webdav.util.WebdavConstants;
+import org.apache.slide.webdav.util.properties.PropertyComputer;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -250,10 +252,10 @@
else if( uh.isWorkingresourceUri() ) {
return WorkingImpl.getInstance();
}
- else if( nrd.exists(P_CHECKED_IN) ) {
+ else if( nrd.exists(PN_CHECKED_IN) ) {
return CheckedInVersionControlledImpl.getInstance();
}
- else if( nrd.exists(P_CHECKED_OUT) ) {
+ else if( nrd.exists(PN_CHECKED_OUT) ) {
return CheckedOutVersionControlledImpl.getInstance();
}
else if( config.isPrincipal(resourcePath) ) {
@@ -325,7 +327,23 @@
}
+
+ //
-------------------------------------------------------------------------
+ private Set myLiveProperties = new HashSet();
+ private Set myProtectedProperties = new HashSet();
+ private Map myComputedProperties = new HashMap();
+
+ void addComputedProperty(PropertyName name, PropertyComputer computer) {
+ this.myComputedProperties.put(name, computer);
+ this.myProtectedProperties.add(name);
+ this.myLiveProperties.add(name);
+ }
+
+ //
-------------------------------------------------------------------------
+
private Set supportedLiveProperties = null;
+ private Set supportedComputedProperties = null;
+ private Set supportedProtectedProperties = null;
/**
* Get the set properties supported by this resource kind.
@@ -339,8 +357,6 @@
}
- private Set supportedComputedProperties = null;
- private Set supportedProtectedProperties = null;
/**
* Get the set properties supported by this resource kind.
* @param filter Q_PROTECTED_ONLY or Q_COMPUTED_ONLY (no filtering if
null)
1.9 +0 -3
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKind.java
Index: ResourceKind.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKind.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ResourceKind.java 15 Dec 2004 18:03:05 -0000 1.8
+++ ResourceKind.java 21 Dec 2004 16:19:49 -0000 1.9
@@ -23,7 +23,6 @@
package org.apache.slide.webdav.util.resourcekind;
-import java.util.Iterator;
import java.util.Set;
@@ -36,8 +35,6 @@
* Get the set live properties supported by this resource kind.
*/
Set getSupportedLiveProperties();
-
- //Iterator getSupportedLivePropertyNames();
/**
* Get the set live properties supported by this resource kind.
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/resource_kinds.dtd
Index: resource_kinds.dtd
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT resource-kinds (resource-kind*)>
<!ELEMENT resource-kind (super-kinds?, live-properties?, supported-methods?,
supported-reports?)>
<!ATTLIST resource-kind
name ID #REQUIRED
>
<!ELEMENT super-kinds (super-kind*)>
<!ELEMENT super-kind EMPTY>
<!ATTLIST super-kind
ref IDREF #REQUIRED
>
<!ELEMENT live-properties (live-property*)>
<!ELEMENT live-property EMPTY>
<!ATTLIST live-property
name CDATA #REQUIRED
namespace CDATA #IMPLIED
features CDATA #IMPLIED
computed CDATA #IMPLIED
protected (true|false) 'false'
>
<!ELEMENT supported-methods (method*)>
<!ELEMENT method EMPTY>
<!ATTLIST method
name CDATA #REQUIRED
features CDATA #IMPLIED
>
<!ELEMENT supported-reports (report*)>
<!ELEMENT report EMPTY>
<!ATTLIST report
name CDATA #REQUIRED
namespace CDATA #IMPLIED
features CDATA #IMPLIED
>
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/resource_kinds.xml
Index: resource_kinds.xml
===================================================================
<!DOCTYPE resource-kinds SYSTEM "resource_kinds.dtd">
<resource-kinds>
<resource-kind name="Activity">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<live-properties>
<live-property name="activity-version-set"
features="activity"/>
<live-property name="activity-checkout-set"
features="activity"/>
<live-property name="subactivity-set"
features="activity"/>
<live-property name="current-workspace-set"
features="activity"/>
</live-properties>
</resource-kind>
<resource-kind name="Baseline">
<super-kinds>
<super-kind ref="Version"/>
</super-kinds>
<live-properties>
<live-property name="baseline-collection"
features="baseline"/>
<live-property name="subbaseline-set"
features="baseline"/>
</live-properties>
</resource-kind>
<resource-kind name="CheckedInVersionControlled">
<super-kinds>
<super-kind ref="VersionControlled"/>
</super-kinds>
<live-properties>
<live-property name="checked-in"
features="version-control"/>
</live-properties>
<supported-methods>
<method name="CHECKOUT" features="checkout-in-place"/>
<method name="UPDATE" features="update"/>
</supported-methods>
</resource-kind>
<resource-kind name="CheckedOut">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<live-properties>
<live-property name="checked-out"
features="version-control"/>
<live-property name="predecessor-set"
features="version-control"/>
<live-property name="checkout-fork"
features="checkout-in-place"/>
<live-property name="checkin-fork"
features="checkout-in-place"/>
<live-property name="merge-set" features="merge"/>
<live-property name="auto-merge-set" features="merge"/>
<live-property name="unreserved" features="activity"/>
<live-property name="activity-set" features="activity"/>
</live-properties>
<supported-methods>
<method name="CHECKIN" features="checkout-in-place"/>
</supported-methods>
</resource-kind>
<resource-kind name="CheckedOutVersionControlledConfiguration">
<super-kinds>
<super-kind ref="VersionControlledConfiguration"/>
</super-kinds>
<live-properties>
<live-property name="subbaseline-set"
features="baseline"/>
</live-properties>
</resource-kind>
<resource-kind name="CheckedOutVersionControlled">
<super-kinds>
<super-kind ref="VersionControlled"/>
<super-kind ref="CheckedOut"/>
</super-kinds>
<supported-methods>
<method name="UNCHECKOUT" features="checkout-in-place"/>
</supported-methods>
</resource-kind>
<resource-kind name="CollectionVersion">
<super-kinds>
<super-kind ref="Version"/>
</super-kinds>
<live-properties>
<live-property name="version-controlled-binding-set"
features="version-controlled-collection"/>
</live-properties>
</resource-kind>
<resource-kind name="DeltavCompliantCollection">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<supported-methods>
<method name="BIND" features="bind"/>
<method name="UNBIND" features="bind"/>
<method name="REBIND" features="bind"/>
<method name="BASELINE-CONTROL" features="baseline"/>
</supported-methods>
</resource-kind>
<resource-kind name="DeltavCompliant">
<live-properties>
<live-property name="creationdate"
protected="true"/>
<live-property name="modificationdate"
protected="true"/>
<live-property name="displayname"/>
<live-property name="getcontentlanguage"/>
<live-property name="getcontentlength"
protected="true"/>
<live-property name="getcontenttype"/>
<live-property name="getetag"
protected="true"/>
<live-property name="getlastmodified"
protected="true"/>
<live-property name="resourcetype"
protected="true"/>
<live-property name="source"/>
<live-property name="lock-discovery" features="locking"
computed="org.apache.slide.webdav.util.properties.LockDiscoveryProperty"/>
<live-property name="supported-lock" features="locking"
computed="org.apache.slide.webdav.util.properties.SupportedLockProperty"/>
<live-property name="owner" features="acl"
computed="org.apache.slide.webdav.util.properties.OwnerProperty"/>
<live-property name="creationuser" features="acl"
computed="org.apache.slide.webdav.util.properties.CreationUserProperty"/>
<live-property name="modificationuser" features="acl"
computed="org.apache.slide.webdav.util.properties.ModificationUserProperty"/>
<live-property name="supported-privilege-set" features="acl"
computed="org.apache.slide.webdav.util.properties.SupportedPrivilegeSetProperty"/>
<live-property name="current-user-privilege-set" features="acl"
computed="org.apache.slide.webdav.util.properties.CurrentuserPrivilegeSetProperty"/>
<live-property name="acl" features="acl"
computed="org.apache.slide.webdav.util.properties.AclProperty"/>
<live-property name="acl-restrictions" features="acl"
computed="org.apache.slide.webdav.util.properties.AclRestrictionsProperty"/>
<live-property name="inherited-acl-set" features="acl"
computed="org.apache.slide.webdav.util.properties.InheritedAclSetProperty"/>
<live-property name="principal-collection-set" features="acl"
computed="org.apache.slide.webdav.util.properties.PrincipalCollectionSetProperty"/>
<live-property name="privilege-collection-set"
features="acl"
computed="org.apache.slide.webdav.util.properties.PrivilegeCollectionSetProperty"/>
<live-property name="resource-id" features="bind"/>
<live-property name="parent-set" features="bind"/>
<live-property name="comment"
features="version-control"/>
<live-property name="creator-displayname"
features="version-control"/>
<live-property name="supported-method-set"
features="version-control"/>
<live-property name="supported-live-property-set"
features="version-control"
computed="org.apache.slide.webdav.util.properties.SupportedLivePropertySetProperty"/>
<live-property name="supported-report-set" features="version-control"
computed="org.apache.slide.webdav.util.properties.SupportedReportSetProperty"/>
<live-property name="workspace" features="workspace"
computed="org.apache.slide.webdav.util.properties.WorkspaceProperty"/>
<live-property name="version-controlled-configuration"
features="baseline"/>
</live-properties>
<supported-methods>
<method name="CONNECT"/>
<method name="COPY"/>
<method name="DELETE"/>
<method name="GET"/>
<method name="HEAD"/>
<method name="MOVE"/>
<method name="OPTIONS"/>
<method name="PORT"/>
<method name="PROPFIND"/>
<method name="PROPPATCH"/>
<method name="PUT"/>
<method name="TRACE"/>
<method name="LOCK" features="locking"/>
<method name="UNLOCK" features="locking"/>
<method name="ACL" features="acl"/>
<method name="REPORT" features="acl version-control"/>
<method name="SEARCH" features="dasl"/>
</supported-methods>
<supported-reports>
<report name="expand-property" features="acl
version-control"/>
</supported-reports>
</resource-kind>
<resource-kind name="DeltavCompliantUnmappedUrl">
<supported-methods>
<method name="PUT"/>
<method name="MKCOL"/>
<method name="VERSION-CONTROL"
features="version-control"/>
<method name="MKWORKSPACE" features="workspace"/>
<method name="MKREDIRECTREF" features="redirect-refs"/>
</supported-methods>
</resource-kind>
<resource-kind name="Versionable">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<supported-methods>
<method name="VERSION-CONTROL"
features="version-control"/>
</supported-methods>
</resource-kind>
<resource-kind name="VersionControlledCollection">
<super-kinds>
<super-kind ref="VersionControlled"/>
</super-kinds>
<live-properties>
<live-property name="eclipsed-set"
features="version-controlled-collection"/>
</live-properties>
</resource-kind>
<resource-kind name="VersionControlledConfiguration">
<super-kinds>
<super-kind ref="VersionControlled"/>
</super-kinds>
<live-properties>
<live-property name="baseline-controlled-collection"
features="baseline"/>
</live-properties>
</resource-kind>
<resource-kind name="VersionControlled">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<live-properties>
<live-property name="auto-version"
features="version-control"/>
<live-property name="version-history" features="version-history"
computed="org.apache.slide.webdav.util.properties.VersionHistoryProperty"/>
</live-properties>
<supported-methods>
<method name="VERSION-CONTROL"
features="version-control"/>
<method name="MERGE" features="merge"/>
</supported-methods>
<supported-reports>
<report name="version-tree" features="version-control"/>
</supported-reports>
</resource-kind>
<resource-kind name="VersionHistory">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<live-properties>
<live-property name="version-set"
features="version-control"/>
<live-property name="root-version" features="version-history"
computed="org.apache.slide.webdav.util.properties.RootVersionProperty"/>
</live-properties>
<supported-reports>
<report name="version-tree" features="version-control"/>
</supported-reports>
</resource-kind>
<resource-kind name="Version">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<live-properties>
<live-property name="predecessor-set"
features="version-control"/>
<live-property name="successor-set" features="version-control"
computed="org.apache.slide.webdav.util.properties.SuccessorSetProperty"/>
<live-property name="checkout-set" features="version-control"
computed="org.apache.slide.webdav.util.properties.CheckoutSetProperty"/>
<live-property name="version-name"
features="version-control"/>
<live-property name="checkout-fork"
features="checkout-in-place"/>
<live-property name="checkin-fork"
features="checkout-in-place"/>
<live-property name="version-history" features="version-history"
computed="org.apache.slide.webdav.util.properties.VersionHistoryProperty"/>
<live-property name="label-name-set" features="label"/>
<live-property name="activity-set" features="activity"/>
</live-properties>
<supported-methods>
<method name="LABEL" features="label"/>
<method name="CHECKOUT" features="working-resource"/>
</supported-methods>
<supported-reports>
<report name="version-tree" features="version-control"/>
</supported-reports>
</resource-kind>
<resource-kind name="Working">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
<super-kind ref="CheckedOut"/>
</super-kinds>
<live-properties>
<live-property name="auto-update"
features="working-resource"/>
</live-properties>
</resource-kind>
<resource-kind name="Workspace">
<super-kinds>
<super-kind ref="DeltavCompliantCollection"/>
</super-kinds>
<live-properties>
<live-property name="workspace-checkout-set"
features="working-workspace"
computed="org.apache.slide.webdav.util.properties.WorkspaceCheckoutSetProperty"/>
<live-property name="baseline-controled-collection-set"
features="baseline"/>
<live-property name="current-activity-set"
features="activity"/>
</live-properties>
</resource-kind>
<resource-kind name="Principal">
<super-kinds>
<super-kind ref="DeltavCompliant"/>
</super-kinds>
<live-properties>
<live-property name="alternate-URI-set" features="acl"/>
<live-property name="principal-URL" features="acl"/>
<live-property name="group-member-set" features="acl"/>
<live-property name="group-membership" features="acl"
computed="org.apache.slide.webdav.util.properties.GroupMembershipProperty"/>
</live-properties>
</resource-kind>
</resource-kinds>
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKindImpl.java
Index: ResourceKindImpl.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.slide.webdav.util.resourcekind;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.IteratorUtils;
import org.apache.commons.collections.Transformer;
import org.apache.slide.common.PropertyName;
import org.apache.slide.webdav.util.DeltavConstants;
/**
* @author Stefan L�tzkendorf
*/
class ResourceKindImpl implements ResourceKind
{
private String name;
/** Set of [EMAIL PROTECTED] org.apache.slide.common.PropertyName} s. */
private Set liveProperties;
private Set protectedProperties;
private Set computedProperties;
private Set methodNames;
private Set reportsNames;
ResourceKindImpl(String name) {
this.name = name;
}
public Set getSupportedLiveProperties()
{
Set result = new HashSet();
CollectionUtils.addAll(result,
IteratorUtils.transformedIterator(
getSupportedLivePropertyNames().iterator(),
new Transformer() {
public Object transform(Object propertyName) {
return ((PropertyName)propertyName).getName();
}
}));
return result;
}
public boolean isSupportedLiveProperty(String prop)
{
return isSupportedLiveProperty(PropertyName.getPropertyName(prop));
}
public boolean isSupportedLiveProperty(PropertyName prop)
{
return this.liveProperties.contains(prop);
}
public Set getSupportedLivePropertyNames()
{
return Collections.unmodifiableSet(this.liveProperties);
}
public Set getSupportedLiveProperties(String filter)
{
Set result = new HashSet();
CollectionUtils.addAll(result,
IteratorUtils.transformedIterator(
getSupportedLivePropertyNames(filter).iterator(),
new Transformer() {
public Object transform(Object propertyName) {
return ((PropertyName)propertyName).getName();
}
}));
return result;
}
/**
* Get the set live properties supported by this resource kind.
* @param filter Q_PROTECTED_ONLY or Q_COMPUTED_ONLY (no filtering if
null)
*/
public Set getSupportedLivePropertyNames(String filter)
{
if (DeltavConstants.Q_COMPUTED_ONLY.equals(filter)) {
return Collections.unmodifiableSet(this.computedProperties);
}
if (DeltavConstants.Q_PROTECTED_ONLY.equals(filter)) {
return Collections.unmodifiableSet(this.protectedProperties);
}
return Collections.unmodifiableSet(this.liveProperties);
}
public Set getSupportedLiveProperties(String[] excludedFeatures)
{
throw new UnsupportedOperationException();
}
public Set getSupportedLiveProperties(String filter,
String[] excludedFeatures)
{
throw new UnsupportedOperationException();
}
public Set getSupportedMethods()
{
return Collections.unmodifiableSet(this.methodNames);
}
public boolean isSupportedMethod(String method)
{
return this.methodNames.contains(method);
}
public Set getSupportedReports()
{
return Collections.unmodifiableSet(this.reportsNames);
}
public boolean isSupportedPropertyValue(String propertyName, Object value)
{
// TODO Auto-generated method stub
return false;
}
public String toString() {
return this.name;
}
}
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKindManager.java
Index: ResourceKindManager.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.slide.webdav.util.resourcekind;
import java.util.HashMap;
import java.util.Map;
import org.apache.slide.common.NamespaceAccessToken;
import org.apache.slide.common.NamespaceConfig;
import org.apache.slide.common.PropertyName;
import org.apache.slide.content.NodeRevisionDescriptor;
import org.apache.slide.webdav.util.DeltavConstants;
import org.apache.slide.webdav.util.UriHandler;
import org.apache.slide.webdav.util.WebdavConstants;
import org.apache.slide.webdav.util.properties.PropertyComputer;
/**
* @author Stefan L�tzkendorf
*/
public class ResourceKindManager
{
public static Kind ACTIVITY = new Kind("Activity",
ActivityImpl.getInstance());
public static Kind BASELINE = new Kind("Baseline",
BaselineImpl.getInstance());
public static Kind CHECKED_IN_VERSION_CONTROLLED = new
Kind("CheckedInVersionControlled",
CheckedInVersionControlledImpl.getInstance());
public static Kind CHECKED_OUT = new Kind("CheckedOut",
CheckedOutImpl.getInstance());
public static Kind CHECKED_OUT_VERSION_CONTROLLED_CONFIG = new
Kind("CheckedOutVersionControlledConfiguration",
CheckedOutVersionControlledConfigurationImpl.getInstance());
public static Kind CHECKED_OUT_VERSION_CONTROLLED = new
Kind("CheckedOutVersionControlled",
CheckedOutVersionControlledImpl.getInstance());
public static Kind COLLECTION_VERSION = new Kind("CollecionVersion",
CollectionVersionImpl.getInstance());
public static Kind DELTAV_COMPLIANT = new Kind("DeltavCompliant",
DeltavCompliantImpl.getInstance());
public static Kind DELTAV_COMPLIANT_COLL = new
Kind("DeltavCompliantCollection", DeltavCompliantCollectionImpl.getInstance());
public static Kind DELTAV_COMPLIANT_UNMAPPED_URL = new
Kind("DeltavCompliantUnmappedUrl",
DeltavCompliantUnmappedUrlImpl.getInstance());
public static Kind VERSIONABLE = new Kind("Versionable",
VersionableImpl.getInstance());
public static Kind VERSION = new Kind("Version",
VersionImpl.getInstance());
public static Kind VERSION_CONTROLLED = new Kind("VersionControlled",
VersionControlledImpl.getInstance());
public static Kind VERSION_CONTROLLED_COLL = new
Kind("VersionControlledCollection",
VersionControlledCollectionImpl.getInstance());
public static Kind VERSION_CONTROLLED_CONFIG = new
Kind("VersionControlledConfiguration",
VersionControlledConfigurationImpl.getInstance());
public static Kind VERSION_HISTORY = new Kind("VersionHistory",
VersionHistoryImpl.getInstance());
public static Kind WORKING = new Kind("Working",
WorkingImpl.getInstance());
public static Kind WORKSPACE = new Kind("Workspace",
WorkspaceImpl.getInstance());
public static Kind PRINCIPAL = new Kind("Principal",
PrincipalImpl.getInstance());
static public ResourceKind determineResourceKind(NamespaceAccessToken
nsaToken,
String resourcePath, NodeRevisionDescriptor nrd)
{
UriHandler uh = UriHandler.getUriHandler(resourcePath);
NamespaceConfig config = nsaToken.getNamespaceConfig();
if( nrd == null ) {
return DeltavCompliantUnmappedUrlImpl.getInstance();
}
else if( uh.isHistoryUri() ) {
return VersionHistoryImpl.getInstance();
}
else if( uh.isVersionUri() ) {
return VersionImpl.getInstance();
}
else if( uh.isWorkspaceUri() ) {
return WorkspaceImpl.getInstance();
}
else if( uh.isWorkingresourceUri() ) {
return WorkingImpl.getInstance();
}
else if( nrd.exists(DeltavConstants.PN_CHECKED_IN) ) {
return CheckedInVersionControlledImpl.getInstance();
}
else if( nrd.exists(DeltavConstants.PN_CHECKED_OUT) ) {
return CheckedOutVersionControlledImpl.getInstance();
}
else if( config.isPrincipal(resourcePath) ) {
return PrincipalImpl.getInstance();
}
else if( nrd.propertyValueContains(WebdavConstants.PN_RESOURCETYPE,
WebdavConstants.E_COLLECTION) ) {
return DeltavCompliantCollectionImpl.getInstance();
}
else {
return VersionableImpl.getInstance();
}
}
void addComputedProperty(Kind resourceKind, PropertyName name,
PropertyComputer computer) {
//resourceKind.instance.
}
public static Kind getKind(String name) {
return (Kind)Kind.kinds.get(name);
}
public static final class Kind {
protected static Map kinds = new HashMap();
protected String name;
protected AbstractResourceKind instance;
protected Kind(String name, ResourceKind instance) {
this.name = name;
this.instance = (AbstractResourceKind)instance; // valid?
kinds.put(name, this);
}
public String toString()
{
return this.name;
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]