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