001    /*
002     * file ControllableSymbolicLink.java
003     *
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM
006     * 
007     * (c) Copyright IBM Corporation 2007, 2008.  All Rights Reserved. 
008     * Note to U.S. Government Users Restricted Rights:  Use, duplication or  
009     * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp. 
010     */
011    package javax.wvcm;
012    
013    import javax.wvcm.PropertyNameList.PropertyName;
014    
015    /**
016     * A proxy for a symbolic link resource.
017     * The content of a symbolic link is the content of the resource to which its
018     * {@link #LINK_TARGET} property refers.
019     * The members of a symbolic link are the members of the resource to which its
020     * {@link #LINK_TARGET} property refers.
021     * 
022     * A controllable symbolic link resource is a symbolic link that can be placed under control.
023     * When a symbolic link is placed under version control, a version of that symbolic link
024     * captures the link-pathname value of that symbolic link.
025     * 
026     * @since 1.1
027     */
028    public interface ControllableSymbolicLink extends ControllableFolder {
029        
030        /**
031         * A pathname that identifies the resource to which the symbolic link refers.
032         * @see #setLinkTarget
033         * @see #getLinkTarget
034         */
035        public static final PropertyName<Location> LINK_TARGET =
036            new PropertyName<Location>("link-target"); //$NON-NLS-1$
037    
038        /**
039         * Get the {@link #LINK_TARGET} property.
040         * 
041         * @return the {@link #LINK_TARGET} property.
042         * @throws WvcmException if this property was not set and
043         * this ControllableSymbolicLink was not created with
044         * {@link #LINK_TARGET} as a wanted property.
045         * @see #setLinkTarget
046         */
047        public Location getLinkTarget() throws WvcmException;
048    
049        /**
050         * Set the {@link #LINK_TARGET} property.
051         * 
052         * @param linkTarget the new pathname
053         * value for the {@link #LINK_TARGET} property.
054         * @see #getLinkTarget
055         */
056        public void setLinkTarget(Location linkTarget);
057    
058    }