org.jboss.shrinkwrap.api
Interface Archive<T extends Archive<T>>

All Superinterfaces:
Assignable
All Known Subinterfaces:
EnterpriseArchive, JavaArchive, ResourceAdapterArchive, WebArchive

public interface Archive<T extends Archive<T>>
extends Assignable

Archive Represents a collection of resources which may be constructed declaratively / programmatically.

Version:
$Revision: $
Author:
ALR

Method Summary
 T add(Archive<?> archive, ArchivePath path)
          Add an archive under a specific context and maintain the archive name as context path.
 T add(Asset asset, ArchivePath target)
          Adds the specified asset under the specified path into the target context
 T add(Asset asset, ArchivePath target, String name)
          Adds the specified asset under the specified target (directory) using the specified name.
 T add(Asset asset, String target)
          Adds the specified resource under the context denoted by the specified target
 T addDirectories(ArchivePath... paths)
          Adds the specified directory.
 T addDirectories(String... paths)
          Adds the specified directory.
 T addDirectory(ArchivePath path)
          Adds the specified directory.
 T addDirectory(String path)
          Adds the specified directory.
 boolean contains(ArchivePath path)
          Denotes whether this archive contains a resource at the specified path
 boolean delete(ArchivePath path)
          Removes the asset in the archive at the specified Path.
 Node get(ArchivePath path)
          Obtains the Node located at the specified path
 Node get(String path)
          Obtains the Node located at the specified path
 Map<ArchivePath,Node> getContent()
          Obtains all assets in this archive, along with its respective Path.
 Map<ArchivePath,Node> getContent(Filter<ArchivePath> filter)
          Obtains all assets matching given filter in this archive, along with its respective Path.
 String getName()
          Obtains the name of this archive (ie. myLibrary.jar)
 T merge(Archive<?> source)
          Merge the contents from an existing archive without maintaining the archive name in the context path.
 T merge(Archive<?> source, ArchivePath path)
          Merge the contents from an existing archive in a specific path without maintaining the archive name in the context path.
 T merge(Archive<?> source, ArchivePath path, Filter<ArchivePath> filter)
          Merge the contents from an existing archive in a specific path without maintaining the archive name in the context path.
 T merge(Archive<?> source, Filter<ArchivePath> filter)
          Merge the contents from an existing archive without maintaining the archive name in the context path.
 String toString()
          Acts as a shorthand for toString(Formatter) where the Formatters.SIMPLE is leveraged.
 String toString(boolean verbose)
          If "true" is specified, acts as a shorthand for toString(Formatter) where the Formatters.VERBOSE is leveraged.
 String toString(Formatter formatter)
          Returns a view of this Archive as returned from the specified Formatter.
 
Methods inherited from interface org.jboss.shrinkwrap.api.Assignable
as
 

Method Detail

getName

String getName()
Obtains the name of this archive (ie. myLibrary.jar)


add

T add(Asset asset,
      ArchivePath target)
                         throws IllegalArgumentException
Adds the specified asset under the specified path into the target context

Parameters:
target - The context under which to add the assets
asset -
Returns:
Throws:
IllegalArgumentException - If no target or assets were specified
IllegalArchivePathException - If the target is invalid.

add

T add(Asset asset,
      ArchivePath target,
      String name)
                         throws IllegalArgumentException
Adds the specified asset under the specified target (directory) using the specified name. The resultant path will be treating the specified path as a prefix namespace, then appending the name.

Parameters:
target - The context directory under which to add the asset
name - The name to assign the assent under the target namespace
asset -
Returns:
Throws:
IllegalArgumentException - If the target, name, or asset was not specified
IllegalArchivePathException - If the target is invalid.

add

T add(Asset asset,
      String target)
                         throws IllegalArgumentException
Adds the specified resource under the context denoted by the specified target

Parameters:
target -
asset -
Returns:
Throws:
IllegalArgumentException - If either the target or asset is not specified
IllegalArchivePathException - If the target is invalid.

addDirectory

T addDirectory(String path)
                                  throws IllegalArgumentException
Adds the specified directory.

Parameters:
path - The path to add
Returns:
This archive
Throws:
IllegalArgumentException - If no path was specified
IllegalArchivePathException - If the path is invalid.

addDirectories

T addDirectories(String... paths)
                                    throws IllegalArgumentException
Adds the specified directory.

Parameters:
paths - The paths to add
Returns:
This archive
Throws:
IllegalArgumentException - If no paths were specified
IllegalArchivePathException - If at least one path is invalid.

addDirectory

T addDirectory(ArchivePath path)
                                  throws IllegalArgumentException
Adds the specified directory.

Parameters:
path - The path to add
Returns:
This archive
Throws:
IllegalArgumentException - If no path was specified
IllegalArchivePathException - If the path is invalid.

addDirectories

T addDirectories(ArchivePath... paths)
                                    throws IllegalArgumentException
Adds the specified directory.

Parameters:
paths - The paths to add
Returns:
This archive
Throws:
IllegalArgumentException - If no paths were specified
IllegalArchivePathException - If at least one path is invalid.

get

Node get(ArchivePath path)
         throws IllegalArgumentException
Obtains the Node located at the specified path

Parameters:
path -
Returns:
The Node, or null if nothing is found at the specified path
Throws:
IllegalArgumentException - If the path is not specified

get

Node get(String path)
         throws IllegalArgumentException
Obtains the Node located at the specified path

Parameters:
path -
Returns:
The Node, or null if nothing is found at the Path
Throws:
IllegalArgumentException - If the path is not specified

contains

boolean contains(ArchivePath path)
                 throws IllegalArgumentException
Denotes whether this archive contains a resource at the specified path

Parameters:
path -
Returns:
Throws:
IllegalArgumentException - If the path is not specified

delete

boolean delete(ArchivePath path)
               throws IllegalArgumentException
Removes the asset in the archive at the specified Path. If the path is a directory, recursively removes all contents.

Parameters:
path -
Returns:
Whether or not a deletion was made
Throws:
IllegalArgumentException

getContent

Map<ArchivePath,Node> getContent()
Obtains all assets in this archive, along with its respective Path. The returned Map will be an immutable view.

Returns:

getContent

Map<ArchivePath,Node> getContent(Filter<ArchivePath> filter)
Obtains all assets matching given filter in this archive, along with its respective Path. The returned Map will be an immutable view.

Returns:

add

T add(Archive<?> archive,
      ArchivePath path)
                         throws IllegalArgumentException
Add an archive under a specific context and maintain the archive name as context path.

Parameters:
path - to use
archive - to add
Returns:
Throws:
IllegalArgumentException - If the path or archive are not specified

merge

T merge(Archive<?> source)
                           throws IllegalArgumentException
Merge the contents from an existing archive without maintaining the archive name in the context path.

Parameters:
source - Archive to add contents from
Returns:
Throws:
IllegalArgumentException - If the existing archive is not specified

merge

T merge(Archive<?> source,
        Filter<ArchivePath> filter)
                           throws IllegalArgumentException
Merge the contents from an existing archive without maintaining the archive name in the context path. The filter control which ArchivePaths to include form the source Archive.

Parameters:
source - Archive to add contents from
Returns:
Throws:
IllegalArgumentException - If the existing archive is not specified

merge

T merge(Archive<?> source,
        ArchivePath path)
                           throws IllegalArgumentException
Merge the contents from an existing archive in a specific path without maintaining the archive name in the context path.

Parameters:
source - Archive to add contents from
path - Path to add contents to
Returns:
Throws:
IllegalArgumentException - If the path or existing archive is not specified

merge

T merge(Archive<?> source,
        ArchivePath path,
        Filter<ArchivePath> filter)
                           throws IllegalArgumentException
Merge the contents from an existing archive in a specific path without maintaining the archive name in the context path. The filter control which ArchivePaths to include form the source Archive.

Parameters:
source - Archive to add contents from
path - Path to add contents to
filter - Filter to use for including Assets in the merge.
Returns:
Throws:
IllegalArgumentException - If the path or existing archive is not specified

toString

String toString()
Acts as a shorthand for toString(Formatter) where the Formatters.SIMPLE is leveraged.

Overrides:
toString in class Object
Returns:

toString

String toString(boolean verbose)
If "true" is specified, acts as a shorthand for toString(Formatter) where the Formatters.VERBOSE is leveraged. Otherwise the Formatters.SIMPLE will be used (equivalent to toString()).

Returns:

toString

String toString(Formatter formatter)
                throws IllegalArgumentException
Returns a view of this Archive as returned from the specified Formatter. Common options may be to use the predefined formatters located in Formatters

Parameters:
formatter -
Returns:
Throws:
IllegalArgumentException - If the formatter is not specified


Copyright © 2010 JBoss, a division of Red Hat, Inc.. All Rights Reserved.