Eclipse JDT
2.0

org.eclipse.jdt.ui.jarpackager
Class JarPackageData

java.lang.Object
  |
  +--org.eclipse.jdt.ui.jarpackager.JarPackageData

public class JarPackageData
extends Object

Model for a JAR package. Describes a JAR package including a bunch of useful options to generate a JAR file with a JAR writer. Clients may subclass.

Since:
2.0
See Also:
JarWriter

Constructor Summary
JarPackageData()
           
 
Method Summary
 boolean allowOverwrite()
          Tells whether files can be overwritten without warning.
 boolean areClassFilesExported()
          Tells whether class files and resources are exported.
 boolean areErrorsExported()
          Answers if compilation units with errors are exported.
 boolean areJavaFilesExported()
          Tells whether java files and resources are exported.
 IJarDescriptionReader createJarDescriptionReader(InputStream inputStream)
          Creates and returns a JAR package data description reader for this JAR package data object.
 IJarDescriptionWriter createJarDescriptionWriter(OutputStream outputStream)
          Creates and returns a JAR package data description writer for this JAR package data object.
 IJarExportRunnable createJarExportRunnable(JarPackageData[] jarPackagesData, Shell parent)
          Creates and returns a JarExportRunnable for a list of JAR package data objects.
 IJarExportRunnable createJarExportRunnable(Shell parent)
          Creates and returns a JarExportRunnable.
 JarWriter createJarWriter(Shell parent)
          Creates and returns a JarWriter for this JAR package.
 boolean exportWarnings()
          Answers if compilation units with warnings are exported.
 IFile[] findClassfilesFor(IFile javaFile)
          Finds the class files for the given java file and returns them.
 String getComment()
          Returns the JAR's comment.
 IFile getDescriptionFile()
          Gets the description file (as workspace resource).
 IPath getDescriptionLocation()
          Returns the location of file containing the description of a JAR.
 Object[] getElements()
          Returns the elements which will be exported.
 IPath getJarLocation()
          Gets the location of the JAR file.
 IFile getManifestFile()
          Gets the manifest file (as workspace resource).
 IPath getManifestLocation()
          Returns the location of a user-defined manifest file.
 IType getManifestMainClass()
          Gets the manifest's main class.
 IManifestProvider getManifestProvider()
          Gets the manifest provider for this JAR package.
 String getManifestVersion()
          Gets the manifest version.
 IPackageFragment[] getPackagesToSeal()
          Gets the packages which should be sealed.
 IPackageFragment[] getPackagesToUnseal()
          Gets the packages which should explicitly be unsealed.
 boolean isBuildingIfNeeded()
          Answers if a build should be performed before exporting files.
 boolean isCompressed()
          Tells whether the JAR is compressed or not.
 boolean isDescriptionSaved()
          Tells whether a description of this JAR package must be saved to a file by a JAR description writer during the export operation.
 boolean isJarSealed()
          Answers whether the JAR itself is sealed.
 boolean isMainClassValid(IRunnableContext context)
          Tells whether the specified manifest main class is valid.
 boolean isManifestAccessible()
          Tells whether a manifest is available.
 boolean isManifestGenerated()
          Tells whether the manifest file must be generated.
 boolean isManifestReused()
          Tells whether a previously generated manifest should be reused.
 boolean isManifestSaved()
          Tells whether the manifest file must be saved to the specified file during the export operation.
 boolean isValid()
          Tells whether this JAR package data can be used to generate a valid JAR.
 boolean logErrors()
          Deprecated. will be removed in final 2.0
 boolean logWarnings()
          Deprecated. will be removed in final 2.0
 void setBuildIfNeeded(boolean fBuildIfNeeded)
          Set if a build should be performed before exporting files.
 void setComment(String comment)
          Sets the JAR's comment.
 void setCompress(boolean state)
          Set whether the JAR is compressed or not.
 void setDescriptionLocation(IPath descriptionLocation)
          Set the location of the JAR description file.
 void setElements(Object[] elements)
          Set the elements which will be exported.
 void setExportClassFiles(boolean state)
          Set option to export class files and resources.
 void setExportErrors(boolean exportErrors)
          Set if compilation units with errors are exported.
 void setExportJavaFiles(boolean state)
          Set the option to export Java source and resources.
 void setExportWarnings(boolean exportWarnings)
          Set if compilation units with warnings are exported.
 void setGenerateManifest(boolean state)
          Set whether a manifest must be generated or not.
 void setJarLocation(IPath jarLocation)
          Set the JAR file location.
 void setLogErrors(boolean logErrors)
          Deprecated. will be removed in final 2.0
 void setLogWarnings(boolean logWarnings)
          Deprecated. will be removed in final 2.0
 void setManifestLocation(IPath manifestLocation)
          Set the location of a user-defined manifest file.
 void setManifestMainClass(IType manifestMainClass)
          Set the manifest's main class.
 void setManifestProvider(IManifestProvider manifestProvider)
          Set the manifest provider.
 void setManifestVersion(String manifestVersion)
          Set the manifest version.
 void setOverwrite(boolean state)
          Set whether files can be overwritten without warning.
 void setPackagesToSeal(IPackageFragment[] packagesToSeal)
          Set the packages which should be sealed.
 void setPackagesToUnseal(IPackageFragment[] packagesToUnseal)
          Set the packages which should explicitly be unsealed.
 void setReuseManifest(boolean state)
          Set whether a previously generated manifest should be reused.
 void setSaveDescription(boolean state)
          Set whether a description of this JAR package must be saved to a file by a JAR description writer during the export operation.
 void setSaveManifest(boolean state)
          Set whether the manifest file must be saved during export operation or not.
 void setSealJar(boolean sealJar)
          Set whether the JAR itself is sealed.
 void setUsesManifest(boolean state)
          Set whether a manifest must be included in the JAR.
 void setUseSourceFolderHierarchy(boolean state)
          Set the option to export the source folder hierarchy.
 boolean usesManifest()
          Answers whether a manifest must be included in the JAR.
 boolean useSourceFolderHierarchy()
          Tells whether the source folder hierarchy is used.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JarPackageData

public JarPackageData()
Method Detail

isCompressed

public boolean isCompressed()
Tells whether the JAR is compressed or not.

Returns:
true if the JAR is compressed

setCompress

public void setCompress(boolean state)
Set whether the JAR is compressed or not.

Parameters:
state - a boolean indicating the new state

allowOverwrite

public boolean allowOverwrite()
Tells whether files can be overwritten without warning.

Returns:
true if files can be overwritten without warning

setOverwrite

public void setOverwrite(boolean state)
Set whether files can be overwritten without warning.

Parameters:
state - a boolean indicating the new state

areClassFilesExported

public boolean areClassFilesExported()
Tells whether class files and resources are exported.

Returns:
true if class files and resources are exported

setExportClassFiles

public void setExportClassFiles(boolean state)
Set option to export class files and resources.

Parameters:
state - a boolean indicating the new state

areJavaFilesExported

public boolean areJavaFilesExported()
Tells whether java files and resources are exported.

Returns:
true if java files and resources are exported

setExportJavaFiles

public void setExportJavaFiles(boolean state)
Set the option to export Java source and resources.

Parameters:
state - the new state

useSourceFolderHierarchy

public boolean useSourceFolderHierarchy()
Tells whether the source folder hierarchy is used.

Using the source folder hierarchy only makes sense if java files are but class files aren't exported.

Returns:
true if source folder hierarchy is used

setUseSourceFolderHierarchy

public void setUseSourceFolderHierarchy(boolean state)
Set the option to export the source folder hierarchy.

Parameters:
state - the new state

getJarLocation

public IPath getJarLocation()
Gets the location of the JAR file. This path is normally external to the workspace.

Returns:
the path representing the location of the JAR file

setJarLocation

public void setJarLocation(IPath jarLocation)
Set the JAR file location.

Parameters:
jarLocation - a path denoting the location of the JAR file

isManifestGenerated

public boolean isManifestGenerated()
Tells whether the manifest file must be generated.

Returns:
true if the manifest has to be generated

setGenerateManifest

public void setGenerateManifest(boolean state)
Set whether a manifest must be generated or not.

Parameters:
state - the new state

isManifestSaved

public boolean isManifestSaved()
Tells whether the manifest file must be saved to the specified file during the export operation.

Returns:
true if the manifest must be saved
See Also:
getManifestLocation()

setSaveManifest

public void setSaveManifest(boolean state)
Set whether the manifest file must be saved during export operation or not.

Parameters:
state - the new state
See Also:
getManifestLocation()

isManifestReused

public boolean isManifestReused()
Tells whether a previously generated manifest should be reused.

Returns:
true if the generated manifest will be reused when regenerating this JAR, false if the manifest has to be regenerated

setReuseManifest

public void setReuseManifest(boolean state)
Set whether a previously generated manifest should be reused.

Parameters:
state - the new state

getManifestLocation

public IPath getManifestLocation()
Returns the location of a user-defined manifest file.

Returns:
the path of the user-defined manifest file location, or null if none is specified

setManifestLocation

public void setManifestLocation(IPath manifestLocation)
Set the location of a user-defined manifest file.

Parameters:
manifestLocation - the path of the user-define manifest location

getManifestFile

public IFile getManifestFile()
Gets the manifest file (as workspace resource).

Returns:
a file which points to the manifest

getManifestVersion

public String getManifestVersion()
Gets the manifest version.

Returns:
a string containing the manifest version

setManifestVersion

public void setManifestVersion(String manifestVersion)
Set the manifest version.

Parameters:
manifestVersion - the string which contains the manifest version

usesManifest

public boolean usesManifest()
Answers whether a manifest must be included in the JAR.

Returns:
true if a manifest has to be included

setUsesManifest

public void setUsesManifest(boolean state)
Set whether a manifest must be included in the JAR.

Parameters:
state - the new state

getManifestProvider

public IManifestProvider getManifestProvider()
Gets the manifest provider for this JAR package.

Returns:
the IManifestProvider

setManifestProvider

public void setManifestProvider(IManifestProvider manifestProvider)
Set the manifest provider.

Parameters:
manifestProvider - the ManifestProvider to set

isJarSealed

public boolean isJarSealed()
Answers whether the JAR itself is sealed. The manifest will contain a "Sealed: true" statement.

This option should only be considered when the manifest file is generated.

Returns:
true if the JAR must be selead
See Also:
isManifestGenerated()

setSealJar

public void setSealJar(boolean sealJar)
Set whether the JAR itself is sealed. The manifest will contain the following entry: Sealed: true

This option should only be considered when the manifest file is generated.

Parameters:
sealJar - true if the JAR must be selead
See Also:
isManifestGenerated()

setPackagesToSeal

public void setPackagesToSeal(IPackageFragment[] packagesToSeal)
Set the packages which should be sealed. The following entry will be added to the manifest file for each package: Name: Sealed: true

This should only be used if the JAR itself is not sealed.

Parameters:
packagesToSeal - an array of IPackageFragment to seal

getPackagesToSeal

public IPackageFragment[] getPackagesToSeal()
Gets the packages which should be sealed. The following entry will be added to the manifest file for each package: Name: Sealed: true

This should only be used if the JAR itself is not sealed.

Returns:
an array of IPackageFragment

getPackagesToUnseal

public IPackageFragment[] getPackagesToUnseal()
Gets the packages which should explicitly be unsealed. The following entry will be added to the manifest file for each package: Name: Sealed: false

This should only be used if the JAR itself is sealed.

Returns:
an array of IPackageFragment

setPackagesToUnseal

public void setPackagesToUnseal(IPackageFragment[] packagesToUnseal)
Set the packages which should explicitly be unsealed. The following entry will be added to the manifest file for each package: Name: Sealed: false

This should only be used if the JAR itself is sealed.

Returns:
an array of IPackageFragment

isDescriptionSaved

public boolean isDescriptionSaved()
Tells whether a description of this JAR package must be saved to a file by a JAR description writer during the export operation.

The JAR writer defines the format of the file.

Returns:
true if this JAR package will be saved
See Also:
getDescriptionLocation()

setSaveDescription

public void setSaveDescription(boolean state)
Set whether a description of this JAR package must be saved to a file by a JAR description writer during the export operation.

The format is defined by the client who implements the reader/writer pair.

Parameters:
state - a boolean containing the new state
See Also:
getDescriptionLocation(), IJarDescriptionWriter

getDescriptionLocation

public IPath getDescriptionLocation()
Returns the location of file containing the description of a JAR. This location is inside the workspace.

Returns:
the path of the description file location, or null if none is specified

setDescriptionLocation

public void setDescriptionLocation(IPath descriptionLocation)
Set the location of the JAR description file.

Parameters:
descriptionLocation - the path of location

getDescriptionFile

public IFile getDescriptionFile()
Gets the description file (as workspace resource).

Returns:
a file which points to the description

getManifestMainClass

public IType getManifestMainClass()
Gets the manifest's main class.

Returns:
the type which contains the main class or, null if none is specified

setManifestMainClass

public void setManifestMainClass(IType manifestMainClass)
Set the manifest's main class.


getElements

public Object[] getElements()
Returns the elements which will be exported. These elements are leaf objects e.g. IFile and not containers.

Returns:
an array of leaf objects

setElements

public void setElements(Object[] elements)
Set the elements which will be exported. These elements are leaf objects e.g. IFile. and not containers.

Parameters:
elements - an array with leaf objects

getComment

public String getComment()
Returns the JAR's comment.

Returns:
the comment string or null if the JAR does not contain a comment

setComment

public void setComment(String comment)
Sets the JAR's comment.

Parameters:
comment - a string or null if the JAR does not contain a comment

logErrors

public boolean logErrors()
Deprecated. will be removed in final 2.0

Tell whether errors are logged.

The export operation decides where and how the errors are logged.

Returns:
true if errors are logged

setLogErrors

public void setLogErrors(boolean logErrors)
Deprecated. will be removed in final 2.0

Set whether errors are logged.

The export operation decides where and how the errors are logged.

Parameters:
logErrors - true if errors are logged

logWarnings

public boolean logWarnings()
Deprecated. will be removed in final 2.0

Tells whether warnings are logged or not.

The export operation decides where and how the warnings are logged.

Returns:
true if warnings are logged

setLogWarnings

public void setLogWarnings(boolean logWarnings)
Deprecated. will be removed in final 2.0

Set if warnings are logged.

The export operation decides where and how the warnings are logged.

Parameters:
logWarnings - true if warnings are logged

areErrorsExported

public boolean areErrorsExported()
Answers if compilation units with errors are exported.

Returns:
true if CUs with errors should be exported

setExportErrors

public void setExportErrors(boolean exportErrors)
Set if compilation units with errors are exported.

Parameters:
exportErrors - true if CUs with errors should be exported

exportWarnings

public boolean exportWarnings()
Answers if compilation units with warnings are exported.

Returns:
true if CUs with warnings should be exported

setExportWarnings

public void setExportWarnings(boolean exportWarnings)
Set if compilation units with warnings are exported.

Parameters:
exportWarnings - true if CUs with warnings should be exported

isBuildingIfNeeded

public boolean isBuildingIfNeeded()
Answers if a build should be performed before exporting files. This flag is only considered if auto-build is off.

Returns:
a boolean telling if a build should be performed

setBuildIfNeeded

public void setBuildIfNeeded(boolean fBuildIfNeeded)
Set if a build should be performed before exporting files. This flag is only considered if auto-build is off.


findClassfilesFor

public IFile[] findClassfilesFor(IFile javaFile)
                          throws CoreException
Finds the class files for the given java file and returns them.

This is a hook for subclasses which want to implement a different strategy for finding the class files. The default strategy is to query the class files for the source file name attribute. If this attribute is missing then all class files in the corresponding output folder are exported.

A CoreException can be thrown if an error occurs during this operation. The CoreException will not stop the export process but adds the status object to the status of the export runnable.

Parameters:
javaFile - a .java file
Returns:
an array with class files or null to used the default strategy
Throws:
CoreException - if find failed, e.g. I/O error or resource out of synch
See Also:
IJarExportRunnable.getStatus()

createJarWriter

public JarWriter createJarWriter(Shell parent)
                          throws CoreException
Creates and returns a JarWriter for this JAR package.

Parameters:
parent - the shell used to display question dialogs, or null if "false/no/cancel" is the answer and no dialog should be shown
Returns:
a JarWriter
CoreException
See Also:
JarWriter

createJarExportRunnable

public IJarExportRunnable createJarExportRunnable(Shell parent)
Creates and returns a JarExportRunnable.

Parameters:
parent - the parent for the dialog, or null if no questions should be asked and no checks for unsaved files should be made.
Returns:
a JarExportRunnable

createJarExportRunnable

public IJarExportRunnable createJarExportRunnable(JarPackageData[] jarPackagesData,
                                                  Shell parent)
Creates and returns a JarExportRunnable for a list of JAR package data objects.

Parameters:
jarPackagesData - an array with JAR package data objects
parent - the parent for the dialog, or null if no dialog should be presented

createJarDescriptionWriter

public IJarDescriptionWriter createJarDescriptionWriter(OutputStream outputStream)
Creates and returns a JAR package data description writer for this JAR package data object.

It is the client's responsibility to close this writer.

Parameters:
outputStream - the output stream to write to
Returns:
a JarWriter

createJarDescriptionReader

public IJarDescriptionReader createJarDescriptionReader(InputStream inputStream)
Creates and returns a JAR package data description reader for this JAR package data object.

It is the client's responsibility to close this reader.

Parameters:
inputStream - the input stream to read from
Returns:
a JarWriter

isValid

public boolean isValid()
Tells whether this JAR package data can be used to generate a valid JAR.

Returns:
true if the JAR Package info is valid

isManifestAccessible

public boolean isManifestAccessible()
Tells whether a manifest is available.

Returns:
true if the manifest is generated or the provided one is accessible

isMainClassValid

public boolean isMainClassValid(IRunnableContext context)
Tells whether the specified manifest main class is valid.

Returns:
true if a main class is specified and valid

Eclipse JDT
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.