001 /*
002 * file CcVobResource.java
003 *
004 * Licensed Materials - Property of IBM
005 * Restricted Materials of IBM
006 *
007 * com.ibm.rational.wvcm.stp.cc.CcVobResource
008 *
009 * © Copyright IBM Corporation 2004, 2008. All Rights Reserved.
010 * Note to U.S. Government Users Restricted Rights: Use, duplication or
011 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
012 */
013
014 package com.ibm.rational.wvcm.stp.cc;
015
016 import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
017
018 import java.util.List;
019
020 import javax.wvcm.ResourceList;
021 import javax.wvcm.WvcmException;
022 import javax.wvcm.PropertyNameList.PropertyName;
023
024 /**
025 * <p>
026 * Base interface containing properties and methods common to
027 * all VOB-resident ClearCase resources.
028 * </p>
029 */
030 public interface CcVobResource extends CcResource {
031
032 /** The VOB in which this VOB resource resides. */
033 PropertyName<CcVob> VOB =
034 new PropertyName<CcVob>(PROPERTY_NAMESPACE, "vob");
035
036 /**
037 * Get the value of this proxy's {@link #VOB} property.
038 * @return This resource's VOB. Will never be null.
039 * @throws WvcmException
040 */
041 public CcVob getVob() throws WvcmException;
042
043 /** List of attributes attached to this resource. */
044 public static final PropertyName<List<CcAttribute>> ATTRIBUTE_LIST =
045 new PropertyName<List<CcAttribute>>(PROPERTY_NAMESPACE, "attribute-list");
046
047 /**
048 * Get the value of this proxy's {@link #ATTRIBUTE_LIST} property.
049 * @return List of CcAttribute proxies applied to this resource. Empty list if none.
050 * @throws WvcmException if this proxy doesn't define a value for this property.
051 */
052 public List<CcAttribute> getAttributeList() throws WvcmException;
053
054 /** Replica in which this resource resides. */
055 public static final PropertyName<CcReplica> CURRENT_REPLICA =
056 new PropertyName<CcReplica>(PROPERTY_NAMESPACE, "current-replica");
057
058 /**
059 * Returns the value of this proxy's {@link #CURRENT_REPLICA} property.
060 *
061 * @return Replica in which the resource resides as a CcReplica instance.
062 * @throws WvcmException
063 * if this proxy doesn't define a value for this property.
064 */
065 public CcReplica getCurrentReplica() throws WvcmException;
066
067 /** List of hyperlink resources attached to this resource. */
068 public static final PropertyName<ResourceList<CcHyperlink>> HYPERLINK_LIST =
069 new PropertyName<ResourceList<CcHyperlink>>(PROPERTY_NAMESPACE, "hyperlink-list");
070
071 /**
072 * Get the value of this proxy's {@link #HYPERLINK_LIST} property.
073 * @return List of CcHyperlink proxies applied to this resource. Empty list if none.
074 * @throws WvcmException if this proxy doesn't define a value for this property.
075 */
076 public ResourceList<CcHyperlink> getHyperlinkList() throws WvcmException;
077
078 /** CcLockInfo object contains the supported lock properties. */
079 public static final PropertyName<CcLockInfo> LOCK_INFO =
080 new PropertyName<CcLockInfo>(PROPERTY_NAMESPACE, "lock-info");
081
082 /**
083 * Returns the value of this proxy's {@link #LOCK_INFO} property.
084 *
085 * @return the CcLockInfo object for the resource.
086 * <code>null</code> if the object is not locked.
087 * @throws WvcmException
088 * if this proxy doesn't define a value for this property.
089 */
090 public CcLockInfo getLockInfo() throws WvcmException;
091
092 /**
093 * Sets (or replaces) the lock on this proxy according to the
094 * {@link #LOCK_INFO} property.
095 * @param lockInfo lock information for the new lock, or <code>null</code>
096 * to unlock the proxy.
097 */
098 public void setLockInfo(CcLockInfo lockInfo);
099
100
101 /** Replica which has mastery of this resource. */
102 public static final PropertyName<CcReplica> CC_MASTER_REPLICA =
103 new PropertyName<CcReplica>(PROPERTY_NAMESPACE, "cc-master-replica");
104
105 /**
106 * Returns the value of this proxy's {@link #CC_MASTER_REPLICA} property.
107 *
108 * @return Replica in which the resource is mastered as a CcReplica instance.
109 * null if resource cannot be mastered.
110 * @throws WvcmException
111 * if this proxy doesn't define a value for this property.
112 */
113 public CcReplica getMasterReplica() throws WvcmException;
114
115 /**
116 * <p>
117 * The permissions applied to this resource.
118 * </p>
119 */
120 PropertyName<CcPermissions> PERMISSIONS =
121 new PropertyName<CcPermissions>(PROPERTY_NAMESPACE, "cc-permissions");
122
123 /**
124 * Get the value of this resource's {@link #PERMISSIONS} property.
125 *
126 * @return A permissions object from which specific permissions
127 * information can be extracted.
128 * @throws WvcmException
129 */
130 CcPermissions getPermissions() throws WvcmException;
131
132 /**
133 * Set the value of this proxy's {@link #PERMISSIONS} property.
134 *
135 * @param permissions A permissions object. Use the one returned
136 * by getPermissions and modify it.
137 * @throws WvcmException
138 * if this proxy doesn't define a value for this property.
139 */
140 void setPermissions(CcPermissions permissions) throws WvcmException;
141
142
143 }