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