001    /*
002     * file CcAttributeType.java
003     *
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM
006     *
007     * com.ibm.rational.wvcm.stp.cc.CcAttributeType
008     * 
009     * (C) 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    
014    package com.ibm.rational.wvcm.stp.cc;
015    
016    import com.ibm.rational.wvcm.stp.cc.CcTypeBase.Scope;
017    import com.ibm.rational.wvcm.stpex.StpExEnumeration;
018    import com.ibm.rational.wvcm.stpex.StpExEnumerationBase;
019    
020    /**
021     * <p>A proxy for a ClearCase attribute type.
022     * </p>
023     * <p>The ClearCase attribute mechanism lets you associate arbitrary
024     * name/value pairs with particular ClearCase versions or elements.
025     * </p>
026     * <p>Attributes are typically used to customize and extend standard
027     * ClearCase functionality.  For example, to notify various people in your group
028     * when particular files are modified, you could store those peoples' email
029     * addresses in an "EmailList" attribute associated with each element of interest.
030     * Then associate a checkin "post-op" trigger with those
031     * elements that reads the attribute value and sends the notice.
032     * </p>
033     * <p>You can also use the cleartool "find" command to find elements and
034     * versions based on their attributes.
035     * </p>
036     * <p>For more attribute information, see the ClearCase "Guide to Managing Software Projects"
037     * manual, and the cleartool man pages "mkattype" and "find".
038     * </p>
039     */
040    public interface CcAttributeType extends CcTypeBase
041    {
042        /**
043         * Value type of a ClearCase attribute type.
044         * The value type determines helps constrain the legal values and format of an
045         * attribute instance.  
046         */
047        enum ValueType implements StpExEnumeration 
048        {
049            /** Value is an integer. */
050            INTEGER,
051    
052            /** Value is floating-point. */
053            REAL,
054            
055            /** Value is a string. */
056            STRING,
057            
058            /** Value represents a time. */
059            TIME,
060            
061            /** Value is an opaque arbitrary byte sequences. */
062            OPAQUE;
063        }
064    
065    }