001 /* 002 * file VersionHistory.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 package javax.wvcm; 012 013 import javax.wvcm.PropertyNameList.PropertyName; 014 import javax.wvcm.WvcmException.ReasonCode; 015 016 017 /** 018 * A proxy for a version history resource. 019 * 020 * A version history resource contains all versions of a version-controlled resource 021 * as the bound members of the version history. 022 * The binding name of a version in a version history is the version name of that version. 023 * When a version is removed as a bound member from its version history, 024 * it is also removed from any other folder that contains it as a bound member. 025 * 026 * @since 1.0 027 */ 028 public interface VersionHistory extends Folder { 029 030 /** 031 * Get the workspace provider of this resource. 032 * 033 * @return the {@link WorkspaceProvider} for this Resource. 034 */ 035 public WorkspaceProvider workspaceProvider(); 036 037 /** 038 * The root version of this VersionHistory. 039 * The root version has no predecessors, 040 * and every other version in this version history 041 * is a descendant of the root version. 042 */ 043 public static final PropertyName<Version> ROOT_VERSION = 044 new PropertyName<Version>("root-version"); //$NON-NLS-1$ 045 046 /** 047 * Get the {@link #ROOT_VERSION} property. 048 * 049 * @return the {@link #ROOT_VERSION} property. 050 * @throws WvcmException if this VersionHistory was not created with 051 * {@link #ROOT_VERSION} as a wanted property. 052 */ 053 public Version getRootVersion() throws WvcmException; 054 055 /** 056 * Get the latest Version for a given activity. 057 * 058 * @param activity the activity whose latest product is to be returned. 059 * @param feedback the properties available in the returned proxies. 060 * @return the latest Version in this VersionHistory 061 * that is a product of the specified activity. May be <code>null</code>. 062 * @throws WvcmException ReasonCode: 063 * <li>{@link ReasonCode#METHOD_NOT_SUPPORTED}: 064 * This resource does not support this report. 065 * <li>{@link ReasonCode#BAD_ARGUMENT_TYPE}: 066 * The activity argument MUST identify an activity. 067 */ 068 public Version doLatestActivityVersionReport( 069 Activity activity, 070 Feedback feedback) 071 throws WvcmException; 072 073 }