Class JarPackageData


  • public class JarPackageData
    extends Object
    Model for a JAR package which stores information used during JAR export and import.

    Clients may subclass.

    Since:
    2.0
    See Also:
    JarWriter3
    • Constructor Detail

      • JarPackageData

        public JarPackageData()
        Creates a new Jar Package Data structure
    • 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)
        Sets 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)
        Sets option to export class files and resources.
        Parameters:
        state - a boolean indicating the new state
      • areOutputFoldersExported

        public boolean areOutputFoldersExported()
        Tells whether all output folders for the enclosing projects of the exported elements.
        Returns:
        true if output folder are exported
        Since:
        3.0
      • setExportOutputFolders

        public void setExportOutputFolders​(boolean state)
        Sets option to export all output folders for the enclosing projects of the exported elements.
        Parameters:
        state - a boolean indicating the new state
        Since:
        3.0
      • areGeneratedFilesExported

        public boolean areGeneratedFilesExported()
        Tells whether files created by the Java builder are exported.
        Returns:
        true if output folder are exported
        Since:
        3.0
      • 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)
        Sets 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
      • getAbsoluteJarLocation

        public IPath getAbsoluteJarLocation()
        Gets the absolute location of the JAR file. This path is normally external to the workspace.
        Returns:
        the absolute path representing the location of the JAR file
        Since:
        3.0
      • 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)
        Sets 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)
        Sets 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)
        Sets 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)
        Sets 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)
        Sets 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)
        Sets 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)
        Sets 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 sealed
        See Also:
        isManifestGenerated()
      • setSealJar

        public void setSealJar​(boolean sealJar)
        Sets 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 sealed
        See Also:
        isManifestGenerated()
      • setPackagesToSeal

        public void setPackagesToSeal​(IPackageFragment[] packagesToSeal)
        Sets the packages which should be sealed. The following entry will be added to the manifest file for each package: Name: <name of the package> 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: <name of the package> 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: <name of the package> 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: <name of the package> Sealed: false

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

        Parameters:
        packagesToUnseal - 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.
        Parameters:
        manifestMainClass - the type with the main class for the manifest file
      • 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

        @Deprecated
        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

        @Deprecated
        public void setLogErrors​(boolean logErrors)
        Deprecated.
        will be removed in final 2.0
        Sets whether errors are logged.

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

        Parameters:
        logErrors - true if errors are logged
      • logWarnings

        @Deprecated
        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

        @Deprecated
        public void setLogWarnings​(boolean logWarnings)
        Deprecated.
        will be removed in final 2.0
        Sets 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)
        Sets 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)
        Sets 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 buildIfNeeded)
        Sets if a build should be performed before exporting files. This flag is only considered if auto-build is off.
        Parameters:
        buildIfNeeded - a boolean telling if a build should be performed
      • 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 sync
        See Also:
        IJarExportRunnable.getStatus()
      • createJarWriter

        @Deprecated
        public JarWriter2 createJarWriter​(Shell parent)
                                   throws CoreException
        Deprecated.
        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 JarWriter2
        Throws:
        CoreException - if an unexpected exception happens
        See Also:
        JarWriter2
      • createJarWriter3

        @Deprecated
        public JarWriter3 createJarWriter3​(Shell parent)
                                    throws CoreException
        Deprecated.
        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 JarWriter3
        Throws:
        CoreException - if an unexpected exception happens
        Since:
        3.2
        See Also:
        JarWriter3
      • createPlainJarBuilder

        public IJarBuilder createPlainJarBuilder()
        Creates and returns a jar builder capable of handling files but not archives.
        Returns:
        a new instance of a plain jar builder
        Since:
        3.4
      • createFatJarBuilder

        public IJarBuilder createFatJarBuilder()
        Creates and returns a jar builder capable of handling files and archives.
        Returns:
        a new instance of a fat jar builder
        Since:
        3.4
      • 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
        Returns:
        the IJarExportRunnable
      • createJarDescriptionWriter

        public IJarDescriptionWriter createJarDescriptionWriter​(OutputStream outputStream,
                                                                String encoding)
        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
        encoding - the encoding to use
        Returns:
        a JarWriter
        Since:
        3.3
      • 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.
        Parameters:
        context - the IRunnableContext
        Returns:
        true if a main class is specified and valid
      • areDirectoryEntriesIncluded

        public boolean areDirectoryEntriesIncluded()
        Tells whether directory entries are added to the jar.
        Returns:
        true if directory entries are to be included
        Since:
        3.1
      • setIncludeDirectoryEntries

        public void setIncludeDirectoryEntries​(boolean includeDirectoryEntries)
        Sets the option to include directory entries into the jar.
        Parameters:
        includeDirectoryEntries - true to include directory entries false otherwise
        Since:
        3.1
      • getRefactoringProjects

        public IProject[] getRefactoringProjects()
        Returns the projects for which refactoring information should be stored.

        This information is used for JAR export.

        Returns:
        the projects for which refactoring information should be stored, or an empty array
        Since:
        3.2
      • isExportStructuralOnly

        public boolean isExportStructuralOnly()
        Is the JAR export wizard only exporting refactorings causing structural changes?

        This information is used for JAR export.

        Returns:
        true if exporting structural changes only, false otherwise
        Since:
        3.2
      • isRefactoringAware

        public boolean isRefactoringAware()
        Is the JAR package refactoring aware?

        This information is used both in JAR export and import

        Returns:
        true if it is refactoring aware, false otherwise
        Since:
        3.2
      • isDeprecationAware

        public boolean isDeprecationAware()
        Is the JAR package deprecation aware?

        This information is used in JAR export.

        Returns:
        true if it is deprecation aware, false otherwise
        Since:
        3.2
      • setRefactoringProjects

        public void setRefactoringProjects​(IProject[] projects)
        Sets the projects for which refactoring information should be stored.

        This information is used for JAR export.

        Parameters:
        projects - the projects for which refactoring information should be stored
        Since:
        3.2
      • setRefactoringAware

        public void setRefactoringAware​(boolean aware)
        Determines whether the jar package is refactoring aware.

        This information is used both in JAR export and import.

        Parameters:
        aware - true if it is refactoring aware, false otherwise
        Since:
        3.2
      • setDeprecationAware

        public void setDeprecationAware​(boolean aware)
        Determines whether the jar package is deprecation aware.

        This information is used in JAR export.

        Parameters:
        aware - true if it is deprecation aware, false otherwise
        Since:
        3.2
      • setRefactoringDescriptors

        public void setRefactoringDescriptors​(RefactoringDescriptorProxy[] descriptors)
        Sets the refactoring descriptors to export.

        This information is used in JAR export.

        Parameters:
        descriptors - the refactoring descriptors
        Since:
        3.2
      • getRefactoringDescriptors

        public RefactoringDescriptorProxy[] getRefactoringDescriptors()
        Returns the refactoring descriptors to export.

        This information is used in JAR export.

        Returns:
        the refactoring descriptors to export
        Since:
        3.2
      • setExportStructuralOnly

        public void setExportStructuralOnly​(boolean structural)
        Determines whether the jar packager exports only refactorings causing structural changes.

        This information is used for JAR export.

        Parameters:
        structural - true if it exports only refactorings causing structural changes, false otherwise
        Since:
        3.2
      • getJarBuilder

        public IJarBuilder getJarBuilder()
        Returns the jar builder which can be used to build the jar described by this package data.
        Returns:
        the builder to use
        Since:
        3.4
      • setJarBuilder

        public void setJarBuilder​(IJarBuilder jarBuilder)
        Set the jar builder to use to build the jar.
        Parameters:
        jarBuilder - the builder to use
        Since:
        3.4
      • getLaunchConfigurationName

        public String getLaunchConfigurationName()
        Get the name of the launch configuration from which to retrieve classpath information.
        Returns:
        the name of the launch configuration
        Since:
        3.4
      • setLaunchConfigurationName

        public void setLaunchConfigurationName​(String name)
        Set the name of the launch configuration form which to retrieve classpath information.
        Parameters:
        name - name of the launch configuration
        Since:
        3.4