001    /*
002     * file CcVobTag.java
003     * 
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM 
006     *
007     * com.ibm.rational.wvcm.stp.cc.CcVobTag
008     *
009     * (C) Copyright IBM Corporation 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 static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
017    
018    import javax.wvcm.WvcmException;
019    import javax.wvcm.PropertyNameList.PropertyName;
020    
021    import com.ibm.rational.wvcm.stpex.StpExBase;
022    
023    /**
024     * <p>
025     * A proxy for a ClearCase VOB tag - the handle by which a ClearCase VOB
026     * is identified and managed.
027     * </p>
028     * <p>
029     * VOB tags are treated as distinct objects from VOBs in order to allow for 
030     * the retrieval of basic VOB info and passing of handles to VOBs without
031     * incurring the overhead of actually opening a real VOB connection.
032     * </p>
033     */
034    
035    public interface CcVobTag extends CcResource {
036    
037        /** Global path for this VOB's storage */
038        PropertyName<String> GLOBAL_PATH =
039            new PropertyName<String>(PROPERTY_NAMESPACE, "global-path");
040        
041        /**
042         * Returns the value of this proxy's {@link #GLOBAL_PATH} property.
043         * 
044         * @return global pathname for this VOB's storage 
045         * @throws WvcmException
046         *             if this proxy doesn't define a value for this property.
047         */
048        public String getGlobalPath() throws WvcmException;
049    
050        /** Name of host on which the VOB resides */
051        PropertyName<String> HOST_NAME =
052            new PropertyName<String>(PROPERTY_NAMESPACE, "host-name");
053        
054        /**
055         * Returns the value of this proxy's {@link #HOST_NAME} property.
056         * 
057         * @return host name for this VOB
058         * @throws WvcmException
059         *             if this proxy doesn't define a value for this property.
060         */
061        public String getHostName() throws WvcmException;
062    
063        /** Host specific path for this VOB's storage */
064        PropertyName<String> HOST_PATH =
065            new PropertyName<String>(PROPERTY_NAMESPACE, "host-path");
066    
067        /**
068         * Returns the value of this proxy's {@link #HOST_PATH} property.
069         * 
070         * @return host specific pathname for this VOB's storage 
071         * @throws WvcmException
072         *             if this proxy doesn't define a value for this property.
073         */
074        public String getHostPath() throws WvcmException;
075    
076        /** Is this a tag for a project VOB? */
077        PropertyName<Boolean> IS_PROJECT_VOB =
078            new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-project-vob");
079    
080        /**
081         * Returns the value of this proxy's {@link #IS_PROJECT_VOB} property.
082         * 
083         * @return true if the VOB tag is for a project VOB, else false
084         * @throws WvcmException
085         *             if this proxy doesn't define a value for this property.
086         */
087        boolean getIsProjectVob() throws WvcmException;
088    
089        /** Is this a tag for a public VOB? */
090        PropertyName<Boolean> IS_PUBLIC =
091            new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-public");
092    
093        /**
094         * Returns the value of this proxy's {@link #IS_PUBLIC} property.
095         * 
096         * @return true if the VOB tag is for a publicVOB, else false
097         * @throws WvcmException
098         *             if this proxy doesn't define a value for this property.
099         */
100        boolean getIsPublic() throws WvcmException;
101    
102        /** 
103         * Mount options specified for this VOB tag in the registry.
104         */
105        PropertyName<String> MOUNT_OPTIONS =
106            new PropertyName<String>(PROPERTY_NAMESPACE, "mount-options");
107    
108        /**
109         * Returns the value of this proxy's {@link #MOUNT_OPTIONS} property.
110         * 
111         * @return string of mount options, null if none were specified.
112         * @throws WvcmException
113         *             if this proxy doesn't define a value for this property.
114         */
115        String getMountOptions() throws WvcmException;
116    
117        /** The VOB to which this tag refers */
118        PropertyName<CcVob> VOB =
119            new PropertyName<CcVob>(PROPERTY_NAMESPACE, "vob");
120    
121        /**
122         * Returns the value of this proxy's {@link #VOB} property.
123         * 
124         * @return the VOB to which this tag refers, as a CcVob instance
125         * @throws WvcmException
126         *             if this proxy doesn't define a value for this property.
127         */
128        CcVob getVob() throws WvcmException;
129        
130        /** The registry region this tag resides in */
131        PropertyName<CcRegistryRegion> REGISTRY_REGION =
132            new PropertyName<CcRegistryRegion>(PROPERTY_NAMESPACE, "vobtag-registry-region");
133        
134        /**
135         * Returns the value of this proxy's {@link #REGISTRY_REGION} property.
136         * 
137         * @return A proxy for the registry region of this VOB tag.
138         * @throws WvcmException 
139         *             if this proxy doesn't define a value for this property.
140         */
141        CcRegistryRegion getRegistryRegion() throws WvcmException;
142    }