protoj.lang
Class SourceArchive

java.lang.Object
  extended by protoj.lang.SourceArchive

public final class SourceArchive
extends java.lang.Object

Responsible for creating one or more archives from the parent source directory. Call addArchive(String, String, String, String, ArgRunnable) to configure each additional archive with the specified name and createArchive(String) to create one of the added archive. During creation, the config argument specified in the constructor will be called back to give the caller a chance to provide further archive configuration. Also call initIncludeArchives(String, String...) to cause any additional archives from the ProjectLayout.getLibDir() to be merged with the added archive.

Author:
Ashley Williams

Constructor Summary
SourceArchive(ArchiveFeature parent)
          Creates with the parent feature.
 
Method Summary
 void addArchive(java.lang.String name, java.lang.String manifest, java.lang.String includes, java.lang.String excludes, ArgRunnable<SourceArchive> config)
          Use to enable creation of an additional archive.
 void createArchive(java.lang.String name)
          Creates the jar for the given name under ProjectLayout.getArchiveDir().
 void createArchives()
          Delegates to createArchive(String) for each archive that was added through a call to addArchive(String, String, String, String, ArgRunnable).
 AssembleTask getCurrentAssembleTask()
          The ant task responsible for creating the jar during the call to createArchive(String).
 ArchiveEntry<SourceArchive> getCurrentEntry()
          The instance used to hold information about the the archive being created during the call to createArchive(String).
 ArchiveEntry<SourceArchive> getEntry(java.lang.String name)
          Accessor for the entry corresponding to the given name.
 void initExcludeArchives(java.lang.String name, java.lang.String... archives)
          Specifies that all the sources archives except for the excluded list in the ProjectLayout.getLibDir() should get merged during creation of the named archive.
 void initIncludeArchives(java.lang.String name, java.lang.String... archives)
          Any additional classes archives in the ProjectLayout.getLibDir() directory that should get merged during creation of the named archive.
 void visit(ArgRunnable<ArchiveEntry<SourceArchive>> visitor)
          Convenient method that visits each entry in this archive.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SourceArchive

public SourceArchive(ArchiveFeature parent)
Creates with the parent feature.

Parameters:
parent -
Method Detail

addArchive

public void addArchive(java.lang.String name,
                       java.lang.String manifest,
                       java.lang.String includes,
                       java.lang.String excludes,
                       ArgRunnable<SourceArchive> config)
Use to enable creation of an additional archive.

Parameters:
name - the name of the jar file to be created, without the extension.
manifest - the name of the manifest to be used from the manifest directory, without the extension. Can be null if a default manifest is required.
includes - the resources that should be included in the archive, can be null to include all resources
excludes - the resources that should be excluded in the archive, can be null to exclude no resources
config - this will be called back during the invocatin of createArchive(String) if the caller wishes to provide further configuration. Can be null if the defaults are ok.

initIncludeArchives

public void initIncludeArchives(java.lang.String name,
                                java.lang.String... archives)
Any additional classes archives in the ProjectLayout.getLibDir() directory that should get merged during creation of the named archive.

Parameters:
name -
archives -

initExcludeArchives

public void initExcludeArchives(java.lang.String name,
                                java.lang.String... archives)
Specifies that all the sources archives except for the excluded list in the ProjectLayout.getLibDir() should get merged during creation of the named archive.

Parameters:
name -

createArchives

public void createArchives()
Delegates to createArchive(String) for each archive that was added through a call to addArchive(String, String, String, String, ArgRunnable).


createArchive

public void createArchive(java.lang.String name)
Creates the jar for the given name under ProjectLayout.getArchiveDir(). The jar file will have a name of [name]-sources.jar.

Parameters:
name - the name as specified in the call to addArchive(String, String, String, String, ArgRunnable) . .

visit

public void visit(ArgRunnable<ArchiveEntry<SourceArchive>> visitor)
Convenient method that visits each entry in this archive.

Parameters:
visitor -

getEntry

public ArchiveEntry<SourceArchive> getEntry(java.lang.String name)
Accessor for the entry corresponding to the given name.

Parameters:
name -
Returns:

getCurrentAssembleTask

public AssembleTask getCurrentAssembleTask()
The ant task responsible for creating the jar during the call to createArchive(String).

Returns:

getCurrentEntry

public ArchiveEntry<SourceArchive> getCurrentEntry()
The instance used to hold information about the the archive being created during the call to createArchive(String).

Returns: