001/*
002 * file CcBranchType.java
003 *
004 *
005 * Licensed Materials - Property of IBM 
006 * Restricted Materials of IBM  
007 * 
008 * com.ibm.rational.wvcm.stp.cc.CcBranchType
009 * 
010 * (C) Copyright IBM Corporation 2004, 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
016package com.ibm.rational.wvcm.stp.cc;
017
018import javax.wvcm.Feedback;
019import javax.wvcm.WvcmException;
020
021/**
022 * <p>
023 * A proxy for a ClearCase branch type.
024 * </p>
025 * <p>
026 * Branches are used in base ClearCase to enable parallel development. 
027 * A branch is an object that specifies a linear sequence of versions of an element. 
028 * Every element has one <b>main</b> branch, which represents the principal line of development, 
029 * and may have multiple subbranches, each of which represents a separate line of development. 
030 * For example, a project team may use the <b>main</b> branch for new development work while using a 
031 * subbranch simultaneously for fixing a bug.
032 * </p>
033 * <p>
034 * For more branch information, see the ClearCase "Guide to Managing Software Projects"
035 * manual, and the cleartool man pages "mkbrtype" and "mkbranch".
036 * </p>
037 */
038public interface CcBranchType extends CcTypeBase
039{
040    /**
041     * <p>Create a new branch type at the location identified by this proxy. The
042     * location should be an object name selector specifying the branch type's name
043     * and the repository (VOB) in which to create it.
044     * </p>
045     * <p>Set the {@link CcTypeBase#SCOPE} property to specify the new type's global scope.
046     * If no scope is set, a scope of NONE (ordinary scope) is used.
047     * </p>
048     * <p>Set the {@link CcTypeBase#INSTANCE_CONSTRAINT} property to determine where the new type
049     * may be applied.  Valid values for branch types are BRANCH and ELEMENT.  If no constraint
050     * is set the default is ELEMENT.
051     * </p>
052     * @param flags Resource-specific creation flags.
053     */
054    public CcBranchType doCreateCcBranchType(TypeCreateFlag[] flags, Feedback feedback) throws WvcmException;
055}