001/*
002 * file CcStorageLocation.java
003 * 
004 * Licensed Materials - Property of IBM
005 * Restricted Materials of IBM 
006 *
007 * com.ibm.rational.wvcm.stp.cc.CcStorageLocation
008 *
009 * (C) Copyright IBM Corporation 2010, 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
014package com.ibm.rational.wvcm.stp.cc;
015
016import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
017
018import javax.wvcm.WvcmException;
019import javax.wvcm.PropertyNameList.PropertyName;
020
021/**
022 * <p>
023 * A proxy for a ClearCase storage location.
024 * A storage location provides a simplified way for users to specify the
025 * storage directory for ClearCase VOBs and views without resorting to explicit 
026 * pathnames.
027 * </p>
028 */
029
030public interface CcStorageLocation extends CcResource {
031
032    /**
033     * Name of the server hosting the storage location
034     */
035    PropertyName<String> SERVER_HOST =
036        new PropertyName<String>(PROPERTY_NAMESPACE, "stgloc-server-host");
037
038    /**
039     * Get the value of this proxy's {@link #SERVER_HOST} property.
040     * @return this storage location's server host
041     * @throws WvcmException if this proxy doesn't define a value for this property.
042     */
043    String getServerHost() throws WvcmException;
044
045    /**
046     * Type of the storage location
047     */
048    enum StorageType {
049        /** This is a view storage location. */
050        VIEW,
051
052        /** This is a VOB storage location. */
053        VOB;
054    }
055
056    /**
057     * The type of storage location
058     */
059    PropertyName<StorageType> STORAGE_TYPE =
060        new PropertyName<StorageType>(PROPERTY_NAMESPACE, "stgloc-storage-type");
061
062    /**
063     * Get the value of this proxy's {@link #STORAGE_TYPE} property.
064     * @return this storage location's type
065     * @throws WvcmException if this proxy doesn't define a value for this property.
066     */
067    StorageType getStorageType() throws WvcmException;
068 
069}