001 /* 002 * file CcElementType.java 003 * 004 * Licensed Materials - Property of IBM 005 * Restricted Materials of IBM 006 * 007 * com.ibm.rational.wvcm.stp.cc.CcElementType 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 package com.ibm.rational.wvcm.stp.cc; 014 015 import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE; 016 017 import javax.wvcm.WvcmException; 018 import javax.wvcm.PropertyNameList.PropertyName; 019 020 import com.ibm.rational.wvcm.stp.cc.CcTypeBase.Scope; 021 import com.ibm.rational.wvcm.stpex.StpExEnumeration; 022 import com.ibm.rational.wvcm.stpex.StpExEnumerationBase; 023 024 /** 025 * <p> 026 * A proxy for a ClearCase element type. 027 * </p> 028 * <p> 029 * The use of element types lets each class of elements be handled differently. 030 * An element type is a class of file elements. Predefined element types, such as 031 * <b>file</b> and <b>text_file</b>, are included. You can define your own element types. 032 * When you create an element type for use in UCM projects, you can specify a mergetype 033 * attribute, which determines how deliver and rebase operations handle merging of 034 * files of that element type. 035 * </p> 036 * <p> 037 * For more information about elements and element types, see the ClearCase "Guide to Managing Software Projects" 038 * manual, and the cleartool man pages "mkeltype" and "mkelem". 039 * </p> 040 * 041 */ 042 public interface CcElementType extends CcTypeBase 043 { 044 /** 045 * Merge type of an element type.<p> 046 * The merge type defines the behaviour when a merge is performed 047 * via deliver, rebase or an explicit findmerge command. 048 * The four merge types are: 049 * <ul> 050 * <li> Auto (default): A findmerge operation attempts to merge elements of this type. 051 * <li> User: A findmerge operation performs trivial merges only. 052 * Nontrivial merges must be performed manually. 053 * <li> Never: A findmerge operation ignores elements of this type. 054 * The never attribute is useful for working with files such as 055 * binary files or bitmap graphics images. 056 * <li> Copy: A findmerge operation attempts to merge elements of this type 057 * automatically by copying the from-version to the to-version 058 * (replacing the to-version with the from-version). 059 * </ul> 060 */ 061 enum MergeType implements StpExEnumeration { 062 063 /** Automatically perform merges */ 064 AUTO, 065 066 /** Automatically perform trivial merges, manual for non-trivial */ 067 USER, 068 069 /** Never merge */ 070 NEVER, 071 072 /** Copy version to merge */ 073 COPY; 074 } 075 076 /** 077 * The merge type of this element type. 078 */ 079 PropertyName<MergeType> MERGE_TYPE = 080 new PropertyName<MergeType>(PROPERTY_NAMESPACE, "merge-type"); 081 082 /** 083 * Get the value of this proxy's {@link #MERGE_TYPE} property. 084 * @return this element type's merge type 085 * @throws WvcmException 086 */ 087 MergeType getMergeType() throws WvcmException; 088 089 /** 090 * The type manager of this element type. 091 */ 092 PropertyName<String> TYPE_MANAGER = 093 new PropertyName<String>(PROPERTY_NAMESPACE, "type-manager"); 094 095 096 /** 097 * Get the value of this proxy's {@link #TYPE_MANAGER} property. 098 * @return this element type's type manager 099 * @throws WvcmException 100 */ 101 String getTypeManager() throws WvcmException; 102 103 }