org.eclipse.xtext.util
Class MergeableManifest

java.lang.Object
  extended by java.util.jar.Manifest
      extended by org.eclipse.xtext.util.MergeableManifest
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
MergeableManifest

public class MergeableManifest
extends java.util.jar.Manifest

Since:
2.2 moved to org.eclipse.xtext.util
Author:
Sven Efftinge - Initial contribution and API, Jan Koehnlein - merging of parameterized entries

Nested Class Summary
 class MergeableManifest.OrderAwareAttributes
           
 
Field Summary
static java.util.jar.Attributes.Name BUNDLE_ACTIVATION_POLICY
           
static java.util.jar.Attributes.Name BUNDLE_ACTIVATOR
           
static java.util.jar.Attributes.Name BUNDLE_CLASSPATH
           
static java.util.jar.Attributes.Name BUNDLE_LOCALIZATION
           
static java.util.jar.Attributes.Name BUNDLE_NAME
           
static java.util.jar.Attributes.Name BUNDLE_REQUIRED_EXECUTION_ENV
           
static java.util.jar.Attributes.Name BUNDLE_SYMBOLIC_NAME
           
static java.util.jar.Attributes.Name BUNDLE_VENDOR
           
static java.util.jar.Attributes.Name BUNDLE_VERSION
           
static java.util.jar.Attributes.Name EXPORT_PACKAGE
           
static java.util.jar.Attributes.Name IMPORT_PACKAGE
           
static java.util.jar.Attributes.Name REQUIRE_BUNDLE
           
 
Constructor Summary
MergeableManifest(java.io.InputStream in)
           
MergeableManifest(java.io.InputStream in, java.lang.String projectName)
           
 
Method Summary
 void addExportedPackages(java.util.Set<java.lang.String> packages)
          adds the qualified names to the export-package attribute, if not already present.
 void addImportedPackages(java.util.Set<java.lang.String> packages)
           
 void addRequiredBundles(java.util.Set<java.lang.String> bundles)
          adds the qualified names to the require-bundle attribute, if not already present.
protected static Pair<java.lang.String,java.lang.String> getSplitEntry(java.lang.String entry)
           
 boolean isModified()
           
static java.lang.String mergeIntoCommaSeparatedList(java.lang.String currentString, java.util.Set<java.lang.String> toMergeIn, Wrapper<java.lang.Boolean> modified)
           
protected static java.lang.String[] splitQuoteAware(java.lang.String string)
           
 void write(java.io.OutputStream out)
           
 
Methods inherited from class java.util.jar.Manifest
clear, clone, equals, getAttributes, getEntries, getMainAttributes, hashCode, read
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUNDLE_NAME

public static final java.util.jar.Attributes.Name BUNDLE_NAME

BUNDLE_SYMBOLIC_NAME

public static final java.util.jar.Attributes.Name BUNDLE_SYMBOLIC_NAME

BUNDLE_VERSION

public static final java.util.jar.Attributes.Name BUNDLE_VERSION

BUNDLE_CLASSPATH

public static final java.util.jar.Attributes.Name BUNDLE_CLASSPATH

BUNDLE_VENDOR

public static final java.util.jar.Attributes.Name BUNDLE_VENDOR

BUNDLE_REQUIRED_EXECUTION_ENV

public static final java.util.jar.Attributes.Name BUNDLE_REQUIRED_EXECUTION_ENV

EXPORT_PACKAGE

public static final java.util.jar.Attributes.Name EXPORT_PACKAGE

IMPORT_PACKAGE

public static final java.util.jar.Attributes.Name IMPORT_PACKAGE

REQUIRE_BUNDLE

public static final java.util.jar.Attributes.Name REQUIRE_BUNDLE

BUNDLE_ACTIVATION_POLICY

public static final java.util.jar.Attributes.Name BUNDLE_ACTIVATION_POLICY

BUNDLE_LOCALIZATION

public static final java.util.jar.Attributes.Name BUNDLE_LOCALIZATION

BUNDLE_ACTIVATOR

public static final java.util.jar.Attributes.Name BUNDLE_ACTIVATOR
Constructor Detail

MergeableManifest

public MergeableManifest(java.io.InputStream in)
                  throws java.io.IOException
Throws:
java.io.IOException

MergeableManifest

public MergeableManifest(java.io.InputStream in,
                         java.lang.String projectName)
                  throws java.io.IOException
Throws:
java.io.IOException
Method Detail

addRequiredBundles

public void addRequiredBundles(java.util.Set<java.lang.String> bundles)
adds the qualified names to the require-bundle attribute, if not already present.

Parameters:
bundles - - passing parameterized bundled (e.g. versions, etc.) is not supported

isModified

public boolean isModified()

write

public void write(java.io.OutputStream out)
           throws java.io.IOException
Overrides:
write in class java.util.jar.Manifest
Throws:
java.io.IOException

addExportedPackages

public void addExportedPackages(java.util.Set<java.lang.String> packages)
adds the qualified names to the export-package attribute, if not already present.

Parameters:
packages - - passing parameterized packages is not supported

addImportedPackages

public void addImportedPackages(java.util.Set<java.lang.String> packages)

splitQuoteAware

protected static java.lang.String[] splitQuoteAware(java.lang.String string)
Since:
2.0

mergeIntoCommaSeparatedList

public static java.lang.String mergeIntoCommaSeparatedList(java.lang.String currentString,
                                                           java.util.Set<java.lang.String> toMergeIn,
                                                           Wrapper<java.lang.Boolean> modified)

getSplitEntry

protected static Pair<java.lang.String,java.lang.String> getSplitEntry(java.lang.String entry)
Since:
2.3