org.entityfs.at4jzip
Class At4jZipFileSystemBuilder

java.lang.Object
  extended by org.entityfs.impl.AbstractFileSystemBuilder<T>
      extended by org.entityfs.impl.impl.AbstractFileSystemBuilderImpl<At4jZipFileSystemBuilder>
          extended by org.entityfs.at4jzip.At4jZipFileSystemBuilder
All Implemented Interfaces:
FileSystemBuilder<At4jZipFileSystemBuilder>

public final class At4jZipFileSystemBuilder
extends AbstractFileSystemBuilderImpl<At4jZipFileSystemBuilder>

This is a builder class for building read only Zip file-backed file systems, based on the Zip implementation from the At4J project.

A Zip file system supports the FSCPersistent, FSCAt4jZipFileBacked and FSCTRandomAccessFiles capabilities. All entities in the file system support the ECAt4jZipEntry capability. Files that are stored as uncompressed files in the Zip file also support the FCRandomAccess capability.

The Zip file system must be closed when it is not needed anymore. If a file entity is used for the zip file, it is locked for reading by the Zip file system. The lock is released when the file system is closed.

Since:
1.2
Author:
Karl Gustafsson
See Also:
org.entiyfs.zip.ZipFileSystemBuilder
In_jar:
entityfs-zipat4j

Field Summary
 
Fields inherited from interface org.entityfs.FileSystemBuilder
DEFAULT_BUFFER_SIZE
 
Constructor Summary
At4jZipFileSystemBuilder()
          Create a builder with default settings: LogAdapter: DefaultLogAdapter.DEFAULT_ADAPTER EntityValidityControlStrategy: null (no one else should have write access to the backend)
At4jZipFileSystemBuilder(LogAdapter logAdapter)
          Create a builder with a custom log adapter.
 
Method Summary
protected  AdapterFactory createAdapterFactory()
          Subclasses implement this to create the right AdapterFactory implementation.
protected  FileSystemImplementation createFileSystem(SupportObjects fso, FileSystemDelegate fsd)
          Subclasses implement this to return a new file system instance.
protected  FileSystemDelegate createFileSystemDelegate(FileSystemAdapter fsa)
          This method is implemented by a subclass to create the file system delegate to use.
 boolean isLockingSupported()
          Does the file system being built support locking?
protected  boolean isReadOnly()
          Subclasses implement this method to tell if the file system they are about to create is read only.
 At4jZipFileSystemBuilder setZipFile(ZipFile zf)
          Set the Zip file backing this file system.
protected  Collection<String> validate()
          Validate that we can create a file system with the current properties.
 
Methods inherited from class org.entityfs.impl.impl.AbstractFileSystemBuilderImpl
create, createDefaultChildEntityManagerFactory, enableEvents, getChildEntityManagerFactory, getEventManager, isFileSystemSupportedByAllCapabilities, setChildEntityManagerFactory, setEventManager
 
Methods inherited from class org.entityfs.impl.AbstractFileSystemBuilder
addCapabilityProvider, addCapabilityProviders, disableAccessControls, disableEntityValidityControls, enableLocking, getAccessController, getBufferSize, getCapabilityProviders, getCapabilityProvidersInternal, getEntityValidityControlStrategy, getLockAcquiringStrategy, getLockAdapterFactory, getLockCommandExecutor, getLogAdapter, getName, getThis, setAccessController, setBufferSize, setEntityValidityControlStrategy, setLockAcquiringStrategy, setLockAdapterFactory, setLockCommandExecutor, setLogAdapter, setName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

At4jZipFileSystemBuilder

public At4jZipFileSystemBuilder()
Create a builder with default settings:


At4jZipFileSystemBuilder

public At4jZipFileSystemBuilder(LogAdapter logAdapter)
Create a builder with a custom log adapter. The builder will not use any EntityValidityControlStrategy since no one should have write access to the backing Zip file.

Parameters:
logAdapter - The adapter to use for logging from the file system.
Method Detail

setZipFile

public At4jZipFileSystemBuilder setZipFile(ZipFile zf)
Set the Zip file backing this file system.

When the file system created by this builder is closed, this Zip file will be closed.

Returns:
this

isLockingSupported

public boolean isLockingSupported()
Description copied from interface: FileSystemBuilder
Does the file system being built support locking?

Returns:
false
See Also:
FileSystemBuilder.enableLocking()

validate

protected Collection<String> validate()
Description copied from class: AbstractFileSystemBuilder
Validate that we can create a file system with the current properties. Subclasses can override to add more validation checks (but be sure to call super.validate()).

Overrides:
validate in class AbstractFileSystemBuilder<At4jZipFileSystemBuilder>
Returns:
A Collection of error messages. Can be empty but never null.

isReadOnly

protected boolean isReadOnly()
Description copied from class: AbstractFileSystemBuilderImpl
Subclasses implement this method to tell if the file system they are about to create is read only.

This method is called from AbstractFileSystemBuilderImpl.create().

Specified by:
isReadOnly in class AbstractFileSystemBuilderImpl<At4jZipFileSystemBuilder>
Returns:
true, always.

createAdapterFactory

protected AdapterFactory createAdapterFactory()
Description copied from class: AbstractFileSystemBuilderImpl
Subclasses implement this to create the right AdapterFactory implementation.

This method is called from AbstractFileSystemBuilderImpl.create().

Specified by:
createAdapterFactory in class AbstractFileSystemBuilderImpl<At4jZipFileSystemBuilder>
Returns:
An AdapterFactory implementation.

createFileSystemDelegate

protected FileSystemDelegate createFileSystemDelegate(FileSystemAdapter fsa)
Description copied from class: AbstractFileSystemBuilderImpl
This method is implemented by a subclass to create the file system delegate to use.

This method is called from AbstractFileSystemBuilderImpl.create().

Specified by:
createFileSystemDelegate in class AbstractFileSystemBuilderImpl<At4jZipFileSystemBuilder>
Parameters:
fsa - The file system adapter.
Returns:
A file system delegate.

createFileSystem

protected FileSystemImplementation createFileSystem(SupportObjects fso,
                                                    FileSystemDelegate fsd)
Description copied from class: AbstractFileSystemBuilderImpl
Subclasses implement this to return a new file system instance. The returned instance does not have any root directory set (yet).

This method is called from AbstractFileSystemBuilderImpl.create().

Specified by:
createFileSystem in class AbstractFileSystemBuilderImpl<At4jZipFileSystemBuilder>
Parameters:
fso - A collection of support objects.
fsd - The file system delegate.
Returns:
A file system implementation.