gnu.crypto.util

Class ExpirableObject

Implemented Interfaces:
Destroyable
Known Direct Subclasses:
Password

public abstract class ExpirableObject
extends Object
implements Destroyable

The base class for objects with sensitive data that are automatically destroyed after a timeout elapses. On creation, an object that extends this class will automatically be added to a Timer object that, once a timeout elapses, will automatically call the Destroyable.destroy() method.

Concrete subclasses must implement the doDestroy() method instead of Destroyable.destroy(); the behavior of that method should match exactly the behavior desired of destroy().

Note that if a DestroyFailedException occurs when the timeout expires, it will not be reported.

See Also:
Destroyable

Field Summary

static long
DEFAULT_TIMEOUT
The default timeout, used in the default constructor.

Constructor Summary

ExpirableObject()
Create a new expirable object that will expire after one hour.
ExpirableObject(long delay)
Create a new expirable object that will expire after the specified timeout.

Method Summary

void
destroy()
Destroys this object.
protected abstract void
doDestroy()
Subclasses must implement this method instead of the Destroyable.destroy() method.

Field Details

DEFAULT_TIMEOUT

public static final long DEFAULT_TIMEOUT
The default timeout, used in the default constructor.
Field Value:
3600000L

Constructor Details

ExpirableObject

protected ExpirableObject()
Create a new expirable object that will expire after one hour.

ExpirableObject

protected ExpirableObject(long delay)
Create a new expirable object that will expire after the specified timeout.
Parameters:
delay - The delay before expiration.

Method Details

destroy

public final void destroy()
            throws DestroyFailedException
Destroys this object. This method calls doDestroy, then, if no exception is thrown, cancels the task that would destroy this object when the timeout is reached.

doDestroy

protected abstract void doDestroy()
            throws DestroyFailedException
Subclasses must implement this method instead of the Destroyable.destroy() method.

Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.