/*
* @(#)Refreshable.java 1.10 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.security.auth;
/**
* Objects such as credentials may optionally implement this
* interface to provide the capability to refresh itself.
* For example, a credential with a particular time-restricted lifespan
* may implement this interface to allow callers to refresh the time period
* for which it is valid.
*
* @version 1.10, 11/17/05
* @see javax.security.auth.Subject
*/
public interface Refreshable {
/**
* Determine if this <code>Object</code> is current.
*
* <p>
*
* @return true if this <code>Object</code> is currently current,
* false otherwise.
*/
boolean isCurrent();
/**
* Update or extend the validity period for this
* <code>Object</code>.
*
* <p>
*
* @exception SecurityException if the caller does not have permission
* to update or extend the validity period for this
* <code>Object</code>. <p>
*
* @exception RefreshFailedException if the refresh attempt failed.
*/
void refresh() throws RefreshFailedException;
}