001/*
002* file CcFileAreaLockedCallback.java
003*
004* Licensed Materials - Property of IBM
005* Restricted Materials of IBM
006* 
007* com.ibm.rational.wvcm.stp.cc.CcFileAreaLockedCallback
008*
009* (C) Copyright IBM Corporation 2007, 2014.  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 java.util.Date;
017
018import javax.wvcm.WvcmException;
019
020/**
021 * Interface to permit applications to deal gracefully with 
022 * FileAreaLockedExceptions.  Applies to web views only - not dynamic or 
023 * snapshot views.
024 */
025public interface CcFileAreaLockedCallback {
026    
027    /**
028     * Information about a file area lock.
029     */
030    public interface CcFileAreaLockInfo {
031        
032        /** 
033         * Get the date object was locked.
034         * @return Date the lock was applied. 
035         */
036        public Date getCreationDate();
037        
038        /** 
039         * Get the hostname of the user who set the lock.
040         * @return String the hostname
041         */
042        public String getHostName();
043        
044        /**
045         * Get the locked view.
046         * @return the locked view
047         */
048        public CcView getView();
049    }
050    
051    /**
052     * Notify the client about the occurrence of a 
053     * CopyAreaLockedException. The client may decide
054     * to break the lock. If so it should break the lock
055     * using the {@link CcView#breakFileAreaLock} method.
056     * 
057     * @param lockInfo      Details about the lock.
058     * @return              True if the lock was broken,
059     *                      otherwise false.
060     */
061    public boolean handleLockedFileArea(CcFileAreaLockInfo lockInfo)
062        throws WvcmException;
063}