3.0.4: 2012-03-05

net.sf.basedb.util.extensions.manager
Class ExtensionsFile.WriteableExtensionsFile

java.lang.Object
  extended by net.sf.basedb.util.extensions.manager.ExtensionsFile.WriteableExtensionsFile
Enclosing class:
ExtensionsFile

public static class ExtensionsFile.WriteableExtensionsFile
extends Object

An extensions file with additional methods that allows adding or modifying information in the underlying extensions file. This kind of view is usually handed out to ExtensionsFileProcessor implementations as a result of calling ExtensionsManager.processFiles(ExtensionsFileProcessor).

Note that the file starts out in read-only mode and that the processor has to call open() to aquire a write-lock before calling any writing methods. It is recommended that the lock is released as soon as possible by calling close().


Field Summary
private  boolean isClosed
           
private  ExtensionsFile xtFile
           
 
Constructor Summary
ExtensionsFile.WriteableExtensionsFile(ExtensionsFile xtFile)
          Creates a new writeable extensions file.
 
Method Summary
private  void checkClosed()
          Check if the file has been closed and throws an IllegalStateException if it has.
 void close()
          Close the writeable file.
 ExtensionsFile getExtensionsFile()
          Get the underlying extensions file (for readin information)
 void markAsProcessed()
          Mark the file as fully processed by the extensions manager.
 boolean open()
           
<M> void
registerMetadata(ObjectKey<M> key, M metadata)
          Register metadata about an object.
<O> void
registerObject(ObjectKey<O> key, O obj)
          Register an object as "defined" by this extensions file.
 void setError(boolean error)
          Sets the error status.
 void setInstalled()
          Mark the file as installed.
 void setUninstalled()
          Mark the file as uninstalled.
<M> void
unregisterMetadata(ObjectKey<M> key)
          Unregister metadata about an object.
<O> void
unregisterObject(ObjectKey<O> key)
          Unregister an object that was "defined" by this extensions file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

xtFile

private final ExtensionsFile xtFile

isClosed

private boolean isClosed
Constructor Detail

ExtensionsFile.WriteableExtensionsFile

ExtensionsFile.WriteableExtensionsFile(ExtensionsFile xtFile)
Creates a new writeable extensions file.

Method Detail

getExtensionsFile

public ExtensionsFile getExtensionsFile()
Get the underlying extensions file (for readin information)


close

public void close()
Close the writeable file. This will release the lock and any further write operations are disallowed.


open

public boolean open()

checkClosed

private void checkClosed()
Check if the file has been closed and throws an IllegalStateException if it has.


markAsProcessed

public void markAsProcessed()
Mark the file as fully processed by the extensions manager.


setUninstalled

public void setUninstalled()
Mark the file as uninstalled.


setInstalled

public void setInstalled()
Mark the file as installed.


setError

public void setError(boolean error)
Sets the error status. This method can be called even on closed files, since it is important to error handling.


registerObject

public <O> void registerObject(ObjectKey<O> key,
                               O obj)
Register an object as "defined" by this extensions file.

Parameters:
key - The object key used to identify the object
obj - The object to register
Throws:
IllegalStateException - If the file has been closed

unregisterObject

public <O> void unregisterObject(ObjectKey<O> key)
Unregister an object that was "defined" by this extensions file.

Parameters:
key - The object key used to identify the object
Throws:
IllegalStateException - If the file has been closed

registerMetadata

public <M> void registerMetadata(ObjectKey<M> key,
                                 M metadata)
Register metadata about an object. The difference between this method and the registerObject(ObjectKey, Object) method is that the registerObject method also registers the objects with the ExtensionsManager.

Parameters:
key - The object key used to identify the metadata
metadata - The metadata to store under the key

unregisterMetadata

public <M> void unregisterMetadata(ObjectKey<M> key)
Unregister metadata about an object.

Parameters:
key - The object key used to identify the metadata

3.0.4: 2012-03-05