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, 2011.  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.PropertyNameList.PropertyName;
021    import javax.wvcm.WvcmException;
022    
023    /**
024     * <p>
025     * A proxy for a ClearCase branch.
026     * </p>
027     * <p>
028     * Branches are used in base ClearCase to enable parallel development. 
029     * A branch is an object that specifies a linear sequence of versions of an element. 
030     * Every element has one <b>main</b> branch, which represents the principal line of development, 
031     * and may have multiple subbranches, each of which represents a separate line of development. 
032     * For example, a project team may use the <b>main</b> branch for new development work while using a 
033     * subbranch simultaneously for fixing a bug.
034     * </p>
035     * <p>
036     * For more branch information, see the ClearCase "Guide to Managing Software Projects"
037     * manual, and the cleartool man pages "mkbrtype" and "mkbranch".
038     * </p>
039     */
040    public interface CcBranch extends CcVobResource
041    {
042        /**
043         * The branch type of which this branch is an instance.
044         * */
045        PropertyName<CcBranchType> TYPE =
046            new PropertyName<CcBranchType>(PROPERTY_NAMESPACE,
047                                           "branch-type");
048    
049        /**
050         * Get the value of this branch instance's {@link #TYPE} property.
051         * 
052         * @return branch instance's branch type
053         * @throws WvcmException
054         *             if this proxy doesn't define a value for this property.
055         */
056        CcBranchType getType() throws WvcmException;
057    }