org.javagroup.util
Class Resource

java.lang.Object
  |
  +--org.javagroup.util.Resource
Direct Known Subclasses:
ProcessLifeToken, WindowResource

public class Resource
extends java.lang.Object
implements Disposable

Class to represent a reference-counted resource. The resource is dispose()d when all "hard" references are released.


Field Summary
protected  java.util.Vector _disposalListeners
           
protected  boolean _disposed
           
protected  int _references
          The number of registered references to this Resource.
protected  boolean _static
          True if this resource is not to be disposed of.
protected  Disposable _wrappedResource
           
 
Constructor Summary
Resource()
           
Resource(Disposable disposable)
           
 
Method Summary
 void addDisposalListener(ResourceDisposalListener listener)
           
 void addLock()
          Lock add a lock.
 void dispose()
           
 void fireResourceDisposalEvent()
           
 boolean isDisposed()
           
 void releaseLock()
          Release a lock.
 void removeDisposalListener(ResourceDisposalListener listener)
           
 void setStatic()
          Mark resource as 'static', so it will never be destroyed.
 void unregister()
          Release all locks and free resource.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_references

protected int _references
The number of registered references to this Resource.

_static

protected boolean _static
True if this resource is not to be disposed of.

_disposalListeners

protected java.util.Vector _disposalListeners

_wrappedResource

protected Disposable _wrappedResource

_disposed

protected boolean _disposed
Constructor Detail

Resource

public Resource()

Resource

public Resource(Disposable disposable)
Method Detail

addLock

public void addLock()
Lock add a lock.

releaseLock

public void releaseLock()
Release a lock.

setStatic

public void setStatic()
Mark resource as 'static', so it will never be destroyed.

unregister

public void unregister()
Release all locks and free resource.

dispose

public void dispose()
Specified by:
dispose in interface Disposable

isDisposed

public boolean isDisposed()

addDisposalListener

public void addDisposalListener(ResourceDisposalListener listener)

removeDisposalListener

public void removeDisposalListener(ResourceDisposalListener listener)

fireResourceDisposalEvent

public void fireResourceDisposalEvent()