ShrinkWrap Implementation Base 1.0.0-cr-2

org.jboss.shrinkwrap.impl.base
Class ArchiveBase<T extends Archive<T>>

java.lang.Object
  extended by org.jboss.shrinkwrap.impl.base.ArchiveBase<T>
All Implemented Interfaces:
Archive<T>, Assignable, ArchiveFormatAssociable, Configurable
Direct Known Subclasses:
MemoryMapArchiveBase

public abstract class ArchiveBase<T extends Archive<T>>
extends Object
implements Archive<T>, Configurable, ArchiveFormatAssociable

ArchiveBase Base implementation of Archive. Contains support for operations (typically overloaded) that are not specific to any particular storage implementation, and may be delegated to other forms.

Version:
$Revision: $
Author:
ALR, John Bailey

Constructor Summary
protected ArchiveBase(String name, Configuration configuration)
          Constructor Creates a new Archive with the specified name
 
Method Summary
 T add(Archive<?> archive, ArchivePath path, Class<? extends StreamExporter> exporter)
          
 T add(Asset asset, ArchivePath path, String name)
          
 T add(Asset asset, String target)
          
 T add(Asset asset, String target, String name)
          
 T add(NamedAsset namedAsset)
          
 T addAsDirectories(ArchivePath... paths)
          
 T addAsDirectories(String... paths)
          
 T addAsDirectory(String path)
          
<TYPE extends Assignable>
TYPE
as(Class<TYPE> clazz)
          
protected  T covariantReturn()
          Provides typesafe covariant return of this instance
 boolean equals(Object obj)
          
 Node get(String path)
          
protected abstract  Class<T> getActualClass()
          Returns the actual typed class for this instance, used in safe casting for covariant return types
 ArchiveFormat getArchiveFormat()
          
<X extends Archive<X>>
X
getAsType(Class<X> type, ArchivePath path)
          
<X extends Archive<X>>
X
getAsType(Class<X> type, ArchivePath path, ArchiveFormat archiveFormat)
          
<X extends Archive<X>>
Collection<X>
getAsType(Class<X> type, Filter<ArchivePath> filter)
          
<X extends Archive<X>>
Collection<X>
getAsType(Class<X> type, Filter<ArchivePath> filter, ArchiveFormat archiveFormat)
          
<X extends Archive<X>>
X
getAsType(Class<X> type, String path)
          
<X extends Archive<X>>
X
getAsType(Class<X> type, String path, ArchiveFormat archiveFormat)
          
 Configuration getConfiguration()
          
 String getName()
          
 int hashCode()
          
 T merge(Archive<?> source)
          
 T merge(Archive<?> source, ArchivePath path)
          
 T merge(Archive<?> source, ArchivePath path, Filter<ArchivePath> filter)
          
 T merge(Archive<?> source, Filter<ArchivePath> filter)
          
 T merge(Archive<?> source, String path)
          
 T merge(Archive<?> source, String path, Filter<ArchivePath> filter)
          
 String toString()
          
 String toString(boolean verbose)
          
 String toString(Formatter formatter)
          
 void writeTo(OutputStream outputStream, Formatter formatter)
          
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jboss.shrinkwrap.api.Archive
add, add, addAsDirectory, contains, contains, delete, delete, get, getContent, getContent
 

Constructor Detail

ArchiveBase

protected ArchiveBase(String name,
                      Configuration configuration)
               throws IllegalArgumentException
Constructor Creates a new Archive with the specified name

Parameters:
name - Name of the archive
configuration - The configuration for this archive
Throws:
IllegalArgumentException - If the name was not specified
Method Detail

getArchiveFormat

public ArchiveFormat getArchiveFormat()

Specified by:
getArchiveFormat in interface ArchiveFormatAssociable
See Also:
ArchiveFormatAssociable.getArchiveFormat()

add

public T add(Asset asset,
             String target)
                         throws IllegalArgumentException

Specified by:
add in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
org.jboss.shrinkwrap.api.Archive#add(java.lang.String, org.jboss.shrinkwrap.api.asset.Asset)

add

public T add(Asset asset,
             String target,
             String name)
                         throws IllegalArgumentException

Specified by:
add in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.add(org.jboss.shrinkwrap.api.asset.Asset, java.lang.String, java.lang.String)

add

public T add(Asset asset,
             ArchivePath path,
             String name)

Specified by:
add in interface Archive<T extends Archive<T>>
See Also:
org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.ArchivePath, java.lang.String, org.jboss.shrinkwrap.api.asset.Asset)

get

public Node get(String path)
         throws IllegalArgumentException

Specified by:
get in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.get(java.lang.String)

getAsType

public <X extends Archive<X>> X getAsType(Class<X> type,
                                          String path)

Specified by:
getAsType in interface Archive<T extends Archive<T>>
See Also:
Archive.getAsType(java.lang.Class, java.lang.String)

getAsType

public <X extends Archive<X>> Collection<X> getAsType(Class<X> type,
                                                      Filter<ArchivePath> filter)

Specified by:
getAsType in interface Archive<T extends Archive<T>>
See Also:
Archive.getAsType(java.lang.Class, org.jboss.shrinkwrap.api.Filter)

getAsType

public <X extends Archive<X>> X getAsType(Class<X> type,
                                          ArchivePath path)

Specified by:
getAsType in interface Archive<T extends Archive<T>>
See Also:
Archive.getAsType(java.lang.Class, org.jboss.shrinkwrap.api.ArchivePath)

getAsType

public <X extends Archive<X>> X getAsType(Class<X> type,
                                          String path,
                                          ArchiveFormat archiveFormat)

Specified by:
getAsType in interface Archive<T extends Archive<T>>
See Also:
Archive.getAsType(java.lang.Class, java.lang.String, org.jboss.shrinkwrap.api.ArchiveFormat)

getAsType

public <X extends Archive<X>> X getAsType(Class<X> type,
                                          ArchivePath path,
                                          ArchiveFormat archiveFormat)

Specified by:
getAsType in interface Archive<T extends Archive<T>>
See Also:
Archive.getAsType(java.lang.Class, org.jboss.shrinkwrap.api.ArchivePath, org.jboss.shrinkwrap.api.ArchiveFormat)

getAsType

public <X extends Archive<X>> Collection<X> getAsType(Class<X> type,
                                                      Filter<ArchivePath> filter,
                                                      ArchiveFormat archiveFormat)

Specified by:
getAsType in interface Archive<T extends Archive<T>>
See Also:
Archive.getAsType(java.lang.Class, org.jboss.shrinkwrap.api.Filter, org.jboss.shrinkwrap.api.ArchiveFormat)

add

public T add(Archive<?> archive,
             ArchivePath path,
             Class<? extends StreamExporter> exporter)

Specified by:
add in interface Archive<T extends Archive<T>>
See Also:
Archive.add(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.ArchivePath, java.lang.Class)

add

public T add(NamedAsset namedAsset)

Specified by:
add in interface Archive<T extends Archive<T>>
See Also:
org.jboss.shrinkwrap.api.Archive#add(NamedAsset))

addAsDirectory

public T addAsDirectory(String path)
                                    throws IllegalArgumentException

Specified by:
addAsDirectory in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.addAsDirectory(java.lang.String)

addAsDirectories

public T addAsDirectories(ArchivePath... paths)
                                      throws IllegalArgumentException

Specified by:
addAsDirectories in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.addAsDirectories(org.jboss.shrinkwrap.api.ArchivePath[])

addAsDirectories

public T addAsDirectories(String... paths)
                                      throws IllegalArgumentException

Specified by:
addAsDirectories in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.addAsDirectories(java.lang.String[])

getName

public final String getName()

Specified by:
getName in interface Archive<T extends Archive<T>>
See Also:
Archive.getName()

merge

public T merge(Archive<?> source)
                           throws IllegalArgumentException

Specified by:
merge in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.merge(org.jboss.shrinkwrap.api.Archive)

merge

public T merge(Archive<?> source,
               Filter<ArchivePath> filter)
                           throws IllegalArgumentException

Specified by:
merge in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.merge(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.Filter)

merge

public T merge(Archive<?> source,
               ArchivePath path)
                           throws IllegalArgumentException

Specified by:
merge in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
org.jboss.shrinkwrap.api.Archive#merge(org.jboss.shrinkwrap.api.ArchivePath, org.jboss.shrinkwrap.api.Archive)

merge

public T merge(Archive<?> source,
               String path,
               Filter<ArchivePath> filter)
                           throws IllegalArgumentException

Specified by:
merge in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.merge(org.jboss.shrinkwrap.api.Archive, java.lang.String, org.jboss.shrinkwrap.api.Filter)

merge

public T merge(Archive<?> source,
               String path)
                           throws IllegalArgumentException

Specified by:
merge in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.merge(org.jboss.shrinkwrap.api.Archive, java.lang.String)

merge

public T merge(Archive<?> source,
               ArchivePath path,
               Filter<ArchivePath> filter)
                           throws IllegalArgumentException

Specified by:
merge in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
org.jboss.shrinkwrap.api.Archive#merge(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.Path, org.jboss.shrinkwrap.api.Filter)

as

public <TYPE extends Assignable> TYPE as(Class<TYPE> clazz)

Specified by:
as in interface Assignable
See Also:
Assignable.as(java.lang.Class)

toString

public String toString()

Specified by:
toString in interface Archive<T extends Archive<T>>
Overrides:
toString in class Object
See Also:
Archive.toString()

toString

public String toString(boolean verbose)

Specified by:
toString in interface Archive<T extends Archive<T>>
See Also:
Archive.toString(boolean)

toString

public String toString(Formatter formatter)
                throws IllegalArgumentException

Specified by:
toString in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException
See Also:
Archive.toString(org.jboss.shrinkwrap.api.formatter.Formatter)

writeTo

public void writeTo(OutputStream outputStream,
                    Formatter formatter)
             throws IllegalArgumentException

Specified by:
writeTo in interface Archive<T extends Archive<T>>
Throws:
IllegalArgumentException

hashCode

public int hashCode()

Overrides:
hashCode in class Object
See Also:
org.jboss.shrinkwrap.api.Archive#hashCode()

equals

public boolean equals(Object obj)

Overrides:
equals in class Object
See Also:
org.jboss.shrinkwrap.api.Archive#equals(Object)

getConfiguration

public Configuration getConfiguration()

Specified by:
getConfiguration in interface Configurable
See Also:
Configurable.getConfiguration()

getActualClass

protected abstract Class<T> getActualClass()
Returns the actual typed class for this instance, used in safe casting for covariant return types

Returns:

covariantReturn

protected final T covariantReturn()
Provides typesafe covariant return of this instance


ShrinkWrap Implementation Base 1.0.0-cr-2

Copyright © 2011 JBoss by Red Hat. All Rights Reserved.