001 /*
002 * file CcBranch.java
003 *
004 *
005 * Licensed Materials - Property of IBM
006 * Restricted Materials of IBM
007 *
008 * com.ibm.rational.wvcm.stp.cc.CcBranch
009 *
010 * (C) Copyright IBM Corporation 2009. All Rights Reserved.
011 * Note to U.S. Government Users Restricted Rights: Use, duplication or
012 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
013 */
014
015
016 package com.ibm.rational.wvcm.stp.cc;
017
018 import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
019
020 import javax.wvcm.Feedback;
021 import javax.wvcm.WvcmException;
022 import javax.wvcm.PropertyNameList.PropertyName;
023
024 import com.ibm.rational.wvcm.stp.cc.CcTypeBase.TypeCreateFlag;
025
026 /**
027 * <p>
028 * A proxy for a ClearCase branch.
029 * </p>
030 * <p>
031 * Branches are used in base ClearCase to enable parallel development.
032 * A branch is an object that specifies a linear sequence of versions of an element.
033 * Every element has one <b>main</b> branch, which represents the principal line of development,
034 * and may have multiple subbranches, each of which represents a separate line of development.
035 * For example, a project team may use the <b>main</b> branch for new development work while using a
036 * subbranch simultaneously for fixing a bug.
037 * </p>
038 * <p>
039 * For more branch information, see the ClearCase "Guide to Managing Software Projects"
040 * manual, and the cleartool man pages "mkbrtype" and "mkbranch".
041 * </p>
042 */
043 public interface CcBranch extends CcVobResource
044 {
045 /**
046 * The branch type of which this branch is an instance.
047 * */
048 PropertyName<CcBranchType> TYPE =
049 new PropertyName<CcBranchType>(PROPERTY_NAMESPACE,
050 "branch-type");
051
052 /**
053 * Get the value of this branch instance's {@link #TYPE} property.
054 *
055 * @return branch instance's branch type
056 * @throws WvcmException
057 * if this proxy doesn't define a value for this property.
058 */
059 CcBranchType getType() throws WvcmException;
060 }