saker.zip Documentation TaskDoc JavaDoc Packages
public interface IncludeResourceMapping
Interface specifying a stateless strategy for mapping entry paths in a ZIP archive.

Instances of this interface is mostly used when including entries from other archives.

The mapResourcePath(SakerPath, boolean) method is used to map or re-map the archive paths of entries in an implementation dependent way.

Clients may implement this interface.

Implementations should adhere the hashCode() and equals(Object) specification, and are recommended to be Externalizable.

Methods
public static IncludeResourceMapping
Gets a resource mapping that calls the argument mappings after each other.
public static IncludeResourceMapping
Gets a resource mapping that changes the compression method to deflated.
public static IncludeResourceMapping
Gets a resource mapping that changes the compression method to deflated with the specified compression level.
public boolean
Indicates whether some other object is "equal to" this one.
public int
Returns a hash code value for the object.
public static IncludeResourceMapping
Gets the identity resource mapping.
public default Collection<extends ZipResourceEntry>
mapResource(ZipResourceEntry resourceentry, boolean directory)
Maps a ZIP resource entry to zero, one, or more other other entries.
public Set<SakerPath>
mapResourcePath(SakerPath archivepath, boolean directory)
Deprecated since saker.zip 0.8.5. Use mapResource(ZipResourceEntry, boolean) instead, which allows manipulation additonal properties of the resources. This function is no longer used by the ZIP creator implementation after (and including) version 0.8.5.
public static IncludeResourceMapping
multi(Iterable<extends IncludeResourceMapping> mappings)
Gets a resource mapping that aggregates multiple mappings.
public static IncludeResourceMapping
Gets a resource mapping that aggregates multiple mappings.
public static IncludeResourceMapping
Gets a resource mapping that changes the compression method to stored (uncompressed).
public static IncludeResourceMapping
targetDirectory(SakerPath targetdirectory)
Gets a resource mapping that maps the archive paths under a given target directory.
public static IncludeResourceMapping
Gets a resource mapping that excludes the archive paths that are not included by the specified wildcard.
Gets a resource mapping that calls the argument mappings after each other.

For a mapping request, the result mapping will call the first mapping, and then the second mapping for each path that the first mapping returned.

If any of the arguments are null, the other one is returned.

firstThe first mapping.
secondThe second mapping.
The mapping that calls the argument mappings in order.
Gets a resource mapping that changes the compression method to deflated.
The resource mapping.
saker.zip 0.8.5
Gets a resource mapping that changes the compression method to deflated with the specified compression level.
levelThe compression level.
The resource mapping.
saker.zip 0.8.5
public abstract boolean equals(Object obj)
Overridden from: Object
Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).

Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.

objthe reference object with which to compare.
true if this object is the same as the obj argument; false otherwise.
public abstract int hashCode()
Overridden from: Object
Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the Object.equals(Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the Java™ programming language.)

a hash code value for this object.
Gets the identity resource mapping.

The identity resource mapping will not transform the paths, and returns them as is.

The identity resource mapping.
public default Collection<extends ZipResourceEntry> mapResource(ZipResourceEntry resourceentry, boolean directory)
Maps a ZIP resource entry to zero, one, or more other other entries.

The method is called when an entry from another archive is being included in the created ZIP. The method should return a collection of resource entries to which the entry should be written to. The result may be null, empty collection, singleton collection, or can contain multiple result entries.

If the result is empty or null, the entry for the argument resource will not be part of the created archive.

If the result contains one or more entries, then the entry will be written to the result archive multiple times specifeid by their entry paths. This can be used to include an entry multiple times with the same contents but different paths.

This method replaces the previous mapResourcePath(SakerPath, boolean). The default implementation calls this method and returns a collection that has the same entry paths as returned by the mapResource(ZipResourceEntry, boolean) function, but all other ZipResourceEntry attributes are taken from the argument.

resourceentryThe archive resource entry that is being included.
directorytrue if the entry is a directory.
The entries that should be written in the created archive.
saker.zip 0.8.5
public abstract Set<SakerPath> mapResourcePath(SakerPath archivepath, boolean directory)
Deprecated since saker.zip 0.8.5. Use mapResource(ZipResourceEntry, boolean) instead, which allows manipulation additonal properties of the resources. This function is no longer used by the ZIP creator implementation after (and including) version 0.8.5.
Maps the archive path of an entry.

The method is called when an entry from another archive is being included in the created ZIP. The method should return a set of paths to which the entry should be written to. The result may be null, empty set, singleton set, or can contain multiple result paths.

If the result is empty or null, the entry for the argument path will not be part of the created archive.

If the result contains one or more paths, then the entry will be written to every archive paths in the result set. This can also be used to include an entry multiple times with the same contents.

archivepathThe archive path of the entry being included.
directorytrue if the entry is a directory.
The path(s) for which the entry should be written in the created archive.
public static IncludeResourceMapping multi(Iterable<extends IncludeResourceMapping> mappings)
Gets a resource mapping that aggregates multiple mappings.

The returned mapping will call all argument mappings, and merge the result paths.

If the argument is null or empty, the result will exclude all entries.

mappingsThe mappings.
The created mapping.
Gets a resource mapping that aggregates multiple mappings.

The returned mapping will call all argument mappings, and concatenate the result paths.

If the argument is null or empty, the result will exclude all entries.

mappingsThe mappings.
The created mapping.
Gets a resource mapping that changes the compression method to stored (uncompressed).
The resource mapping.
saker.zip 0.8.5
Gets a resource mapping that maps the archive paths under a given target directory.

The specified target directory will be prepended to all archive paths.

targetdirectoryThe target directory path.
The resource mapping.
NullPointerExceptionIf the argument is null.
InvalidPathFormatExceptionIf the argument path is not forward relative.
Gets a resource mapping that excludes the archive paths that are not included by the specified wildcard.

The result mapping will not transform the archive paths in any way. It will only check if the path is included by the given wildcard, and if so, works the same way as the identity mapping. If it is not included, the archive entry will not be part of the created archive.

wildcardThe wildcard that specifies the inclusion pattern.
The created resource mapping.
NullPointerExceptionIf the argument is null.