001 /*
002 * file Task.java
003 *
004 * Licensed Materials - Property of IBM
005 * Restricted Materials of IBM
006 *
007 * (c) Copyright IBM Corporation 2004, 2008. All Rights Reserved.
008 * Note to U.S. Government Users Restricted Rights: Use, duplication or
009 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
010 */
011
012 package javax.wvcm;
013
014 import javax.wvcm.PropertyNameList.PropertyName;
015 import javax.wvcm.WvcmException.ReasonCode;
016
017 /**
018 * A proxy for a task resource.
019 *
020 * A task resource provides the motivation for the logical change performed by an activity.
021 * A variety of terms are used in various systems for a task, including change request,
022 * modification request, change order, and workitem.
023 *
024 * @since 1.0
025 */
026 public interface Task extends Resource {
027
028 /**
029 * Create a new persistent task, where the provider can allocate the location for the
030 * new task.
031 * The provider should use the client-specified location if it is valid,
032 * but can select a different location if the location is not valid
033 * or already identifies a task.
034 * <p>
035 * Postconditions:
036 * <li>(initialize-resource): A new task resource exists at the location of this Resource.
037 *
038 * @param feedback Specifies optional feedback to the caller.
039 * @return A proxy for this new resource, whose properties are specified by feedback.
040 * @throws WvcmException ReasonCode:
041 * <li>{@link ReasonCode#CANNOT_CREATE_AT_THIS_LOCATION}:
042 * If the location of this Task does not identify a repository that supports
043 * the creation of tasks, the request MUST fail.
044 */
045 public Task doCreateGeneratedResource(Feedback feedback) throws WvcmException;
046
047 /**
048 * The activities that are performing this task.
049 * This is the inverse of the {@link Activity#TASK_LIST} property.
050 */
051 public static final PropertyName<ResourceList<Activity>> ACTIVITY_LIST =
052 new PropertyName<ResourceList<Activity>>("activity-list"); //$NON-NLS-1$
053
054 /**
055 * Get the {@link #ACTIVITY_LIST} property.
056 *
057 * @return the {@link #ACTIVITY_LIST} property.
058 * @throws WvcmException if this Task was not created with
059 * {@link #ACTIVITY_LIST} as a wanted property.
060 */
061 public ResourceList<Activity> getActivityList() throws WvcmException;
062
063 }