001 /*
002 * file CcVob.java
003 *
004 * Licensed Materials - Property of IBM
005 * Restricted Materials of IBM
006 *
007 * com.ibm.rational.wvcm.stp.cc.CcVob
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 javax.wvcm.ResourceList;
019 import javax.wvcm.WvcmException;
020 import javax.wvcm.PropertyNameList.PropertyName;
021
022 import com.ibm.rational.wvcm.stp.StpRepository;
023
024 /**
025 * <p>
026 * A proxy for a ClearCase versioned object base (VOB) - the repository for all
027 * server-side ClearCase resources.
028 * </p>
029 * <p>
030 * A VOB can either be a regular VOB or project VOB. A project VOB is a
031 * partcular type of VOB that may contain UCM project metadata - projects,
032 * streams, activities, components, and baselines.
033 * </p>
034 */
035 public interface CcVob extends StpRepository, CcVobResource
036 {
037 /** List of attribute types in this VOB. Includes global types. */
038 PropertyName<ResourceList<CcAttributeType>> ATTRIBUTE_TYPE_LIST =
039 new PropertyName<ResourceList<CcAttributeType>>(PROPERTY_NAMESPACE,
040 "attribute-type-list");
041
042 /**
043 * Get the value of this proxy's {@link #ATTRIBUTE_TYPE_LIST} property. Note
044 * that this includes global types higher up the Admin VOB
045 * hierarchy with no local copy in this VOB.
046 *
047 * @return list of attribute types in this VOB as AttributeType instances.
048 * @throws WvcmException if this proxy doesn't define a value for this
049 * property.
050 */
051 public ResourceList<CcAttributeType> getAttributeTypeList()
052 throws WvcmException;
053
054 /** List of branch types in this VOB. Includes global types. */
055 PropertyName<ResourceList<CcBranchType>> BRANCH_TYPE_LIST =
056 new PropertyName<ResourceList<CcBranchType>>(PROPERTY_NAMESPACE,
057 "branch-type-list");
058
059 /**
060 * Get the value of this proxy's {@link #BRANCH_TYPE_LIST} property. Note
061 * that this includes global types higher up the Admin VOB
062 * hierarchy with no local copy in this VOB.
063 *
064 * @return list of branch types in this VOB as BranchType instances.
065 * @throws WvcmException if this proxy doesn't define a value for this
066 * property.
067 */
068 public ResourceList<CcBranchType> getBranchTypeList() throws WvcmException;
069
070 /**
071 * List of UCM components in this project VOB.
072 * This property is only supported on project VOBs.
073 */
074 PropertyName<ResourceList<CcComponent>> COMPONENT_LIST =
075 new PropertyName<ResourceList<CcComponent>>(PROPERTY_NAMESPACE,
076 "component-list");
077
078 /**
079 * Get the value of this proxy's {@link #COMPONENT_LIST} property.
080 *
081 * @return list of components in this VOB as UcmComponent instances.
082 * @throws WvcmException if this proxy doesn't define a value for this
083 * property.
084 */
085 public ResourceList<CcComponent> getComponentList() throws WvcmException;
086
087 /** List of element types in this VOB. Includes global types. */
088 PropertyName<ResourceList<CcElementType>> ELEMENT_TYPE_LIST =
089 new PropertyName<ResourceList<CcElementType>>(PROPERTY_NAMESPACE,
090 "element-type-list");
091
092 /**
093 * Get the value of this proxy's {@link #ELEMENT_TYPE_LIST} property. Note
094 * that this includes global types higher up the Admin VOB
095 * hierarchy with no local copy in this VOB.
096 *
097 * @return list of element types in this VOB as ElementType instances.
098 * @throws WvcmException if this proxy doesn't define a value for this
099 * property.
100 */
101 public ResourceList<CcElementType> getElementTypeList()
102 throws WvcmException;
103
104 /** List of hyperlink types in this VOB. Includes global types. */
105 PropertyName<ResourceList<CcHyperlinkType>> HYPERLINK_TYPE_LIST =
106 new PropertyName<ResourceList<CcHyperlinkType>>(PROPERTY_NAMESPACE,
107 "hyperlink-type-list");
108
109 /**
110 * Get the value of this proxy's {@link #HYPERLINK_TYPE_LIST} property. Note
111 * that this includes global types higher up the Admin VOB
112 * hierarchy with no local copy in this VOB.
113 *
114 * @return list of hyperlink types in this VOB as HyperlinkType instances.
115 * @throws WvcmException if this proxy doesn't define a value for this
116 * property.
117 */
118 public ResourceList<CcHyperlinkType> getHyperlinkTypeList()
119 throws WvcmException;
120
121 /** Is this VOB a project VOB? */
122 PropertyName<Boolean> IS_PROJECT_VOB =
123 new PropertyName<Boolean>(PROPERTY_NAMESPACE,
124 "is-project-vob");
125
126 /**
127 * Returns the value of this proxy's {@link #IS_PROJECT_VOB} property.
128 *
129 * @return true if this VOB is a project VOB, else false
130 * @throws WvcmException if this proxy doesn't define a value for this
131 * property.
132 */
133 boolean getIsProjectVob() throws WvcmException;
134
135 /** Is this VOB replicated? */
136 PropertyName<Boolean> IS_REPLICATED =
137 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-replicated");
138
139 /**
140 * Returns the value of this proxy's {@link #IS_REPLICATED} property.
141 *
142 * @return true if the VOB is replicated, else false
143 * @throws WvcmException
144 * if this proxy doesn't define a value for this property.
145 */
146 boolean getIsReplicated() throws WvcmException;
147
148 /** List of label types in this VOB. Includes global types. */
149 PropertyName<ResourceList<CcLabelType>> LABEL_TYPE_LIST =
150 new PropertyName<ResourceList<CcLabelType>>(PROPERTY_NAMESPACE,
151 "label-type-list");
152
153 /**
154 * Get the value of this proxy's {@link #LABEL_TYPE_LIST} property. Note
155 * that this includes global types higher up the Admin VOB
156 * hierarchy with no local copy in this VOB.
157 *
158 * @return list of label types in this VOB as LabelType instances.
159 * @throws WvcmException if this proxy doesn't define a value for this
160 * property.
161 */
162 public ResourceList<CcLabelType> getLabelTypeList() throws WvcmException;
163
164 /**
165 * Ordered list of Admin VOBs for this VOB with the immediate parent first
166 * and the furthest ancestor last.
167 */
168 PropertyName<ResourceList<CcVob>> ORDERED_ADMIN_VOB_LIST =
169 new PropertyName<ResourceList<CcVob>>(PROPERTY_NAMESPACE,
170 "ordered-admin-vob-list");
171
172 /**
173 * Get the value of this proxy's {@link #ORDERED_ADMIN_VOB_LIST} property.
174 *
175 * @return list of Admin VOBs for this VOB
176 * @throws WvcmException if this proxy doesn't define a value for this
177 * property.
178 */
179 public ResourceList<CcVob> getOrderedAdminVobList() throws WvcmException;
180
181 /**
182 * This project VOB's root UCM project folder.
183 * This property is only supported on project VOBs.
184 */
185 PropertyName<CcProjectFolder> ROOT_PROJECT_FOLDER =
186 new PropertyName<CcProjectFolder>(PROPERTY_NAMESPACE,
187 "root-project-folder");
188
189 /**
190 * Returns the value of this proxy's {@link #ROOT_PROJECT_FOLDER} property.
191 *
192 * @return A client proxy for this project VOB's root project folder
193 * @throws WvcmException if this proxy doesn't define a value for this
194 * property.
195 */
196 public CcProjectFolder getRootProjectFolder() throws WvcmException;
197
198 /**
199 * This VOB's db schema version.
200 */
201 PropertyName<Long> SCHEMA_VERSION =
202 new PropertyName<Long>(PROPERTY_NAMESPACE, "schema-version");
203
204 /**
205 * Get the value of this proxy's {@link #SCHEMA_VERSION} property.
206 * @return long indicating VOB's schema version
207 * @throws WvcmException if this proxy doesn't define a value for this
208 * property.
209 */
210 public long getSchemaVersion() throws WvcmException;
211
212 /** List of trigger types in this VOB */
213 PropertyName<ResourceList<CcTriggerType>> TRIGGER_TYPE_LIST =
214 new PropertyName<ResourceList<CcTriggerType>>(PROPERTY_NAMESPACE,
215 "trigger-type-list");
216
217 /**
218 * Get the value of this proxy's {@link #TRIGGER_TYPE_LIST} property.
219 *
220 * @return list of trigger types in this VOB as TriggerType instances.
221 * @throws WvcmException if this proxy doesn't define a value for this
222 * property.
223 */
224 public ResourceList<CcTriggerType> getTriggerTypeList()
225 throws WvcmException;
226
227 /** This VOB's VOB tag as a string in the current registry region. */
228 PropertyName<String> VOB_TAG_STRING = new PropertyName<String>(PROPERTY_NAMESPACE,
229 "vob-tag-string");
230
231 /**
232 * Returns the value of this proxy's {@link #VOB_TAG_STRING} property.
233 *
234 * @return this VOB's VOB tag
235 * @throws WvcmException if this proxy doesn't define a value for this
236 * property.
237 */
238 public String getVobTagString() throws WvcmException;
239
240 /**
241 * This VOB's VOB tag as a {@link CcVobTag} resource in the current
242 * registry region.
243 */
244 PropertyName<CcVobTag> VOB_TAG =
245 new PropertyName<CcVobTag>(PROPERTY_NAMESPACE, "vob-tag");
246
247 /**
248 * Returns the value of this proxy's {@link #VOB_TAG} property.
249 *
250 * @return this VOB's VOB tag
251 * @throws WvcmException if this proxy doesn't define a value for this
252 * property.
253 */
254 public CcVobTag getVobTag() throws WvcmException;
255
256 /**
257 * The list of MultiSite replicas of this VOB.
258 * This list may be incomplete; other replicas may exist, but their
259 * creation packets have not yet been imported at the current replica.
260 */
261 PropertyName<ResourceList<CcReplica>> REPLICA_LIST =
262 new PropertyName<ResourceList<CcReplica>>(
263 PROPERTY_NAMESPACE, "replica-list");
264
265 /**
266 * Returns the value of this proxy's {@link #REPLICA_LIST} property.
267 *
268 * @return this VOB's list of replicas as a list of CcReplica instances
269 * @throws WvcmException if this proxy doesn't define a value for this
270 * property.
271 */
272 public ResourceList<CcReplica> getReplicaList() throws WvcmException;
273
274 /**
275 * Check to see if a type with the given name is visible in this VOB.
276 * To be visible a type must be an ordinary or local type defined in the VOB
277 * or a global type in the AdminVOB hierarchy above this VOB which has
278 * not yet been instantiated.
279 * @param labelName Name of the label to look for.
280 * @return true if a label with that name is visible from this VOB, else false.
281 */
282 public boolean doIsLabelTypeVisible(String labelName) throws WvcmException;
283 }