org.apache.jackrabbit.webdav.version.ActivityResource Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.webdav.version;
import org.apache.jackrabbit.webdav.property.DavPropertyName;
/**
* An activity is a resource that selects a set of versions that are on a single
* "line of descent", where a line of descent is a sequence of versions connected
* by successor relationships. If an activity selects versions from multiple
* version histories, the versions selected in each version history must be on a
* single line of descent.
*
* RFC 3253 defines the following required live properties for an Activity
* resource.
*
* - {@link #ACTIVITY_VERSION_SET DAV:activity-version-set}
* - {@link #ACTIVITY_CHECKOUT_SET DAV:activity-checkout-set}
* - {@link #SUBACTIVITY_SET DAV:subactivity-set}
* - {@link #CURRENT_WORKSPACE_SET DAV:current-workspace-set}
* - all DeltaV-compliant resource properties}.
* - Note, that the {@link org.apache.jackrabbit.webdav.DavConstants#PROPERTY_RESOURCETYPE DAV:resourcetype}
* property returned by an Activity resource must be
* {@link org.apache.jackrabbit.webdav.property.ResourceType#ACTIVITY DAV:activity}
*
*
* The Activity resource must support all methods defined for a
* {@link DeltaVResource DeltaV-compliant resource}. Since no additional methods
* are required for an activity this interface mainly acts as marker.
*
* Please refer to RFC 3253
* Section 13 for a complete description of this resource type.
*/
public interface ActivityResource extends DeltaVResource {
/**
* The computed DAV:activity-version-set property identifies each version
* whose DAV:activity-set property identifies this activity. Multiple
* versions of a single version history can be selected by an activity's
* DAV:activity-version-set property, but all DAV:activity-version-set
* versions from a given version history must be on a single line of descent
* from the root version of that version history.
*
* Note that the DAV:activity-version-set represents a
* {@link org.apache.jackrabbit.webdav.property.HrefProperty HrefProperty}
*/
public static final DavPropertyName ACTIVITY_VERSION_SET = DavPropertyName.create("activity-version-set", DeltaVConstants.NAMESPACE);
/**
* The computed DAV:activity-checkout-set property identifies each
* checked-out resource whose DAV:activity-set identifies this activity.
*
* Note that the DAV:activity-checkout-set represents a
* {@link org.apache.jackrabbit.webdav.property.HrefProperty HrefProperty}
*/
public static final DavPropertyName ACTIVITY_CHECKOUT_SET = DavPropertyName.create("activity-checkout-set", DeltaVConstants.NAMESPACE);
/**
* The DAV:subactivity-set property identifies each activity that forms a
* part of the logical change being captured by this activity. An activity
* behaves as if its DAV:activity-version-set is extended by the
* DAV:activity-version-set of each activity identified in the
* DAV:subactivity-set. In particular, the versions in this extended set
* MUST be on a single line of descent, and when an activity selects a version
* for merging, the latest version in this extended set is the one that will
* be merged.
*
* A server MAY reject attempts to modify the DAV:subactivity-set of an activity.
*
* Note that the DAV:subactivity-set represents a
* {@link org.apache.jackrabbit.webdav.property.HrefProperty HrefProperty}
*/
public static final DavPropertyName SUBACTIVITY_SET = DavPropertyName.create("subactivity-set", DeltaVConstants.NAMESPACE);
/**
* The computed DAV:current-workspace-set property identifies identifies
* each workspace whose DAV:current-activity-set identifies this activity.
*
* Note that the DAV:current-workspace-set represents a
* {@link org.apache.jackrabbit.webdav.property.HrefProperty HrefProperty}
*/
public static final DavPropertyName CURRENT_WORKSPACE_SET = DavPropertyName.create("current-workspace-set", DeltaVConstants.NAMESPACE);
}