NAME
Debian::Javahelper::Manifest - Javahelper representation of a Jar
Manifest
SYNOPSIS
use Debian::Javahelper::Java;
my $manifest = ...;
my $main_sec = $manifest->get_section(MAIN_SECTION);
# Create if it does not exist.
my $file_sec = $manifest->get_section("java/lang/Object.class", 1);
DESCRIPTION
This module is used to represent a Java Manifest.
Constants
MAIN_SECTION
A constant denoting the main section of the manifest.
Exported by default.
Methods
Debian::Javahelper::Manifest->new()
Creates a new manifest. It will only contain the main section with
the Manifest-Version attribute.
$manifest->get_section($name[, $create])
Returns the section denoted by $name. If this section does not
exist, then it will either return undef or (if $create is a truth-
value) create a new empty section with that name.
Use the MAIN_SECTION constant to access the main section of the
manifest.
$manifest->get_sections()
Returns a list of all sections in $manifest. The main section will
always be the first in the list, but the remaining sections can
come in any order (and this order can change in later invocations).
Modifying the list will not change which sections are present in
$manifest, but modifying a section in this list will also update
the section in the manifest.
$manifest->merge($other)
Merge all entries in $other into $manifest. All sections in $other
will be added to $manifest if they are not already present.
If an attribute in a given section is only present in one of the
two manifests, then that attribute and its value will be in
$manifest after merge returns.
If the attribute in a given section is present in both manifests,
then the value from $other will be used.
This can be used to make a deep copy a manifest:
my $copy = Debian::Javahelper::Manifest->new();
$copy->merge($orig);
SEE ALSO
Debian::Javahelper::Java(3) - had parse/write methods for manifests.
Debian::Javahelper::ManifestSection(3) - for how sections are handled.
AUTHOR
Niels Thykier <niels@thykier.net>
COPYRIGHT AND LICENSE
Copyright 2010 by Niels Thykier
This module is free software; you may redistribute it and/or modify it
under the terms of GNU GPL 2.