001    /*
002     * file CcHyperlink.java
003     *
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM 
006     * com.ibm.rational.wvcm.stp.cc.CcHyperlink
007     *
008     * © Copyright IBM Corporation 2007, 2008.  All Rights Reserved.
009     * Note to U.S. Government Users Restricted Rights:  Use, duplication or 
010     * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp.
011     */
012    package com.ibm.rational.wvcm.stp.cc;
013    
014    import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
015    
016    import javax.wvcm.WvcmException;
017    import javax.wvcm.PropertyNameList.PropertyName;
018    
019    /**
020     * A proxy for a ClearCase hyperlink object.
021     * <p>
022     * Conceptually, a hyperlink is an “arrow” from one VOB-database object (version, branch, element, 
023     * VOB symbolic link or VOB) to another.  A merge arrow is a special kind of hyperlink.
024     * </p>
025     * <p>
026     * For more information about hyperlinks, see the ClearCase "Guide to Managing Software Projects"
027     * manual, and the cleartool man page "mkhlink".
028     * </p>
029     */
030    public interface CcHyperlink extends CcVobResource
031    {
032        /**
033         * The resource at the "from" end of the hyperlink
034         */
035        PropertyName<CcResource> FROM_RESOURCE =
036            new PropertyName<CcResource>(PROPERTY_NAMESPACE,
037                                         "hlink-from-resource");
038       
039        /**
040         * Get the value of this hyperlink instance's {@link #FROM_RESOURCE} property.
041         * 
042         * @return resource hyperlink instance points from
043         * @throws WvcmException
044         *             if this proxy doesn't define a value for this property or 
045         *             the resource is unavailable/does not exist
046         */
047        CcResource getFromResource() throws WvcmException;
048    
049        /**
050         * The text associated with the "from" end of the hyperlink.
051         */
052        PropertyName<String> FROM_TEXT =
053            new PropertyName<String>(PROPERTY_NAMESPACE,
054                                         "hlink-from-text");
055        
056        /**
057         * Get the value of this hyperlink instance's {@link #FROM_TEXT} property.
058         * 
059         * @return String containing text associated with the "from" end of the hyperlink.
060         *         Will be <code>null</code> if no text was specified during hyperlink creation.
061         * @throws WvcmException
062         *             if this proxy doesn't define a value for this property or 
063         *             the resource is unavailable/does not exist
064         */
065        String getFromText() throws WvcmException;
066        
067        /**
068         * The resource at the "to" end of the hyperlink
069         */
070        PropertyName<CcResource> TO_RESOURCE =
071            new PropertyName<CcResource>(PROPERTY_NAMESPACE,
072                                         "hlink-to-resource");
073       
074        /**
075         * Get the value of this hyperlink instance's {@link #TO_RESOURCE} property.
076         * 
077         * @return resource hyperlink instance points to, or null if single-ended hyperlink
078         * @throws WvcmException
079         *             if this proxy doesn't define a value for this property or 
080         *             the resource is unavailable/does not exist
081         */
082        CcResource getToResource() throws WvcmException;
083    
084        /**
085         * The text associated with the "to" end of the hyperlink.
086         */
087        PropertyName<String> TO_TEXT =
088            new PropertyName<String>(PROPERTY_NAMESPACE,
089                                         "hlink-to-text");
090        
091        /**
092         * Get the value of this hyperlink instance's {@link #TO_TEXT} property.
093         * 
094         * @return String containing text associated with the "to" end of the hyperlink.
095         *         Will be <code>null</code> if no text was specified during hyperlink creation.
096         * @throws WvcmException
097         *             if this proxy doesn't define a value for this property or 
098         *             the resource is unavailable/does not exist
099         */
100        String getToText() throws WvcmException;
101        
102        /**
103         * The hyperlink type of which this hyperlink is an instance.
104         */
105        PropertyName<CcHyperlinkType> TYPE =
106            new PropertyName<CcHyperlinkType>(PROPERTY_NAMESPACE,
107                                              "hlink-type");
108    
109        /**
110         * Get the value of this hyperlink instance's {@link #TYPE} property.
111         * 
112         * @return hyperlink instance's hyperlink type
113         * @throws WvcmException
114         *             if this proxy doesn't define a value for this property.
115         */
116        CcHyperlinkType getType() throws WvcmException;
117    
118    }