Class BndEditModel


  • public class BndEditModel
    extends java.lang.Object
    A model for a Bnd file. In the first iteration, use a simple Properties object; this will need to be enhanced to additionally record formatting, e.g. line breaks and empty lines, and comments.
    • Field Detail

      • NEWLINE_LINE_SEPARATOR

        public static final java.lang.String NEWLINE_LINE_SEPARATOR
        See Also:
        Constant Field Values
      • KNOWN_PROPERTIES

        private static java.lang.String[] KNOWN_PROPERTIES
      • BUNDLE_VERSION_MACRO

        public static final java.lang.String BUNDLE_VERSION_MACRO
        See Also:
        Constant Field Values
      • converters

        private final java.util.Map<java.lang.String,​Converter<? extends java.lang.Object,​java.lang.String>> converters
      • formatters

        private final java.util.Map<java.lang.String,​Converter<java.lang.String,​? extends java.lang.Object>> formatters
      • bndResource

        private java.io.File bndResource
      • bndResourceName

        private java.lang.String bndResourceName
      • propChangeSupport

        private final java.beans.PropertyChangeSupport propChangeSupport
      • properties

        private java.util.Properties properties
      • objectProperties

        private final java.util.Map<java.lang.String,​java.lang.Object> objectProperties
      • changesToSave

        private final java.util.Map<java.lang.String,​java.lang.String> changesToSave
      • stringConverter

        private Converter<java.lang.String,​java.lang.String> stringConverter
      • includedSourcesConverter

        private Converter<java.lang.Boolean,​java.lang.String> includedSourcesConverter
      • listConverter

        private Converter<java.util.List<java.lang.String>,​java.lang.String> listConverter
      • headerClauseListConverter

        private Converter<java.util.List<HeaderClause>,​java.lang.String> headerClauseListConverter
      • serviceComponentConverter

        private Converter<java.util.List<ServiceComponent>,​java.lang.String> serviceComponentConverter
      • importPatternConverter

        private Converter<java.util.List<ImportPattern>,​java.lang.String> importPatternConverter
      • propertiesConverter

        private Converter<java.util.Map<java.lang.String,​java.lang.String>,​java.lang.String> propertiesConverter
      • requirementListConverter

        private Converter<java.util.List<org.osgi.resource.Requirement>,​java.lang.String> requirementListConverter
      • eeConverter

        private Converter<EE,​java.lang.String> eeConverter
      • newlineEscapeFormatter

        private Converter<java.lang.String,​java.lang.String> newlineEscapeFormatter
      • defaultFalseBoolFormatter

        private Converter<java.lang.String,​java.lang.Boolean> defaultFalseBoolFormatter
      • stringListFormatter

        private Converter<java.lang.String,​java.util.Collection<?>> stringListFormatter
      • headerClauseListFormatter

        private Converter<java.lang.String,​java.util.Collection<? extends HeaderClause>> headerClauseListFormatter
      • propertiesFormatter

        private Converter<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>> propertiesFormatter
      • requirementListFormatter

        private Converter<java.lang.String,​java.util.Collection<? extends org.osgi.resource.Requirement>> requirementListFormatter
      • standaloneLinkListFormatter

        private Converter<java.lang.String,​java.util.Collection<? extends HeaderClause>> standaloneLinkListFormatter
      • eeFormatter

        private Converter<java.lang.String,​EE> eeFormatter
      • runReposFormatter

        private Converter<java.lang.String,​java.util.Collection<? extends java.lang.String>> runReposFormatter
    • Constructor Detail

      • BndEditModel

        public BndEditModel()
      • BndEditModel

        public BndEditModel​(Workspace workspace)
      • BndEditModel

        public BndEditModel​(IDocument document)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • BndEditModel

        public BndEditModel​(Project project)
                     throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • loadFrom

        public void loadFrom​(IDocument document)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • toEscaped

        public java.io.InputStream toEscaped​(java.lang.String text)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • toAsciiStream

        public java.io.InputStream toAsciiStream​(IDocument doc)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • loadFrom

        public void loadFrom​(java.io.File file)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • loadFrom

        public void loadFrom​(java.io.InputStream inputStream)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • saveChangesTo

        public void saveChangesTo​(IDocument document)
      • findEntry

        private static IRegion findEntry​(IDocument document,
                                         java.lang.String name)
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • updateDocument

        private static void updateDocument​(IDocument document,
                                           java.lang.String name,
                                           java.lang.String value)
      • getAllPropertyNames

        public java.util.List<java.lang.String> getAllPropertyNames()
      • lookupConverter

        public Converter<java.lang.Object,​java.lang.String> lookupConverter​(java.lang.String propertyName)
      • lookupFormatter

        public Converter<java.lang.String,​java.lang.Object> lookupFormatter​(java.lang.String propertyName)
      • genericGet

        public java.lang.Object genericGet​(java.lang.String propertyName)
      • genericSet

        public void genericSet​(java.lang.String propertyName,
                               java.lang.Object value)
      • getBundleLicense

        public java.lang.String getBundleLicense()
      • setBundleLicense

        public void setBundleLicense​(java.lang.String bundleLicense)
      • getBundleCategory

        public java.lang.String getBundleCategory()
      • setBundleCategory

        public void setBundleCategory​(java.lang.String bundleCategory)
      • getBundleName

        public java.lang.String getBundleName()
      • setBundleName

        public void setBundleName​(java.lang.String bundleName)
      • getBundleDescription

        public java.lang.String getBundleDescription()
      • setBundleDescription

        public void setBundleDescription​(java.lang.String bundleDescription)
      • getBundleCopyright

        public java.lang.String getBundleCopyright()
      • setBundleCopyright

        public void setBundleCopyright​(java.lang.String bundleCopyright)
      • getBundleUpdateLocation

        public java.lang.String getBundleUpdateLocation()
      • setBundleUpdateLocation

        public void setBundleUpdateLocation​(java.lang.String bundleUpdateLocation)
      • getBundleVendor

        public java.lang.String getBundleVendor()
      • setBundleVendor

        public void setBundleVendor​(java.lang.String bundleVendor)
      • getBundleContactAddress

        public java.lang.String getBundleContactAddress()
      • setBundleContactAddress

        public void setBundleContactAddress​(java.lang.String bundleContactAddress)
      • getBundleDocUrl

        public java.lang.String getBundleDocUrl()
      • setBundleDocUrl

        public void setBundleDocUrl​(java.lang.String bundleDocUrl)
      • getBundleSymbolicName

        public java.lang.String getBundleSymbolicName()
      • setBundleSymbolicName

        public void setBundleSymbolicName​(java.lang.String bundleSymbolicName)
      • getBundleVersionString

        public java.lang.String getBundleVersionString()
      • setBundleVersion

        public void setBundleVersion​(java.lang.String bundleVersion)
      • getBundleActivator

        public java.lang.String getBundleActivator()
      • setBundleActivator

        public void setBundleActivator​(java.lang.String bundleActivator)
      • getOutputFile

        public java.lang.String getOutputFile()
      • setOutputFile

        public void setOutputFile​(java.lang.String name)
      • isIncludeSources

        public boolean isIncludeSources()
      • setIncludeSources

        public void setIncludeSources​(boolean includeSources)
      • getPrivatePackages

        public java.util.List<java.lang.String> getPrivatePackages()
      • setPrivatePackages

        public void setPrivatePackages​(java.util.List<java.lang.String> newPackages)
      • setEntries

        private void setEntries​(java.util.List<? extends java.lang.String> packages,
                                java.lang.String key)
      • removeEntries

        private void removeEntries​(java.lang.String key)
      • addPrivatePackage

        public void addPrivatePackage​(java.lang.String packageName)
      • hasPrivatePackageInstruction

        private boolean hasPrivatePackageInstruction()
      • getEntries

        private <E> java.util.List<java.lang.String> getEntries​(java.lang.String instruction,
                                                                Converter<? extends E,​? super java.lang.String> converter)
      • getSystemPackages

        public java.util.List<ExportedPackage> getSystemPackages()
      • setSystemPackages

        public void setSystemPackages​(java.util.List<? extends ExportedPackage> packages)
      • getClassPath

        public java.util.List<java.lang.String> getClassPath()
      • setClassPath

        public void setClassPath​(java.util.List<? extends java.lang.String> classPath)
      • getExportedPackages

        public java.util.List<ExportedPackage> getExportedPackages()
      • setExportedPackages

        public void setExportedPackages​(java.util.List<? extends ExportedPackage> exports)
      • addExportedPackage

        public void addExportedPackage​(ExportedPackage export)
      • getDSAnnotationPatterns

        public java.util.List<java.lang.String> getDSAnnotationPatterns()
      • setDSAnnotationPatterns

        public void setDSAnnotationPatterns​(java.util.List<? extends java.lang.String> patterns)
      • getServiceComponents

        public java.util.List<ServiceComponent> getServiceComponents()
      • setServiceComponents

        public void setServiceComponents​(java.util.List<? extends ServiceComponent> components)
      • getImportPatterns

        public java.util.List<ImportPattern> getImportPatterns()
      • setImportPatterns

        public void setImportPatterns​(java.util.List<? extends ImportPattern> patterns)
      • setBuildPath

        public void setBuildPath​(java.util.List<? extends VersionedClause> paths)
      • setTestPath

        public void setTestPath​(java.util.List<? extends VersionedClause> paths)
      • getBuildPackages

        @Deprecated
        public java.util.List<VersionedClause> getBuildPackages()
        Deprecated.
      • setBuildPackages

        @Deprecated
        public void setBuildPackages​(java.util.List<? extends VersionedClause> paths)
        Deprecated.
      • setRunBundles

        public void setRunBundles​(java.util.List<? extends VersionedClause> paths)
      • isIncludedPackage

        public boolean isIncludedPackage​(java.lang.String packageName)
      • getSubBndFiles

        public java.util.List<java.lang.String> getSubBndFiles()
      • setSubBndFiles

        public void setSubBndFiles​(java.util.List<java.lang.String> subBndFiles)
      • getRunProperties

        public java.util.Map<java.lang.String,​java.lang.String> getRunProperties()
      • setRunProperties

        public void setRunProperties​(java.util.Map<java.lang.String,​java.lang.String> props)
      • getRunVMArgs

        public java.lang.String getRunVMArgs()
      • setRunVMArgs

        public void setRunVMArgs​(java.lang.String args)
      • getRunProgramArgs

        public java.lang.String getRunProgramArgs()
      • setRunProgramArgs

        public void setRunProgramArgs​(java.lang.String args)
      • getTestSuites

        public java.util.List<java.lang.String> getTestSuites()
      • setTestSuites

        public void setTestSuites​(java.util.List<java.lang.String> suites)
      • getPlugins

        public java.util.List<HeaderClause> getPlugins()
      • setPlugins

        public void setPlugins​(java.util.List<HeaderClause> plugins)
      • getPluginPath

        public java.util.List<java.lang.String> getPluginPath()
      • setPluginPath

        public void setPluginPath​(java.util.List<java.lang.String> pluginPath)
      • getDistro

        public java.util.List<java.lang.String> getDistro()
      • setDistro

        public void setDistro​(java.util.List<java.lang.String> distros)
      • getRunRepos

        public java.util.List<java.lang.String> getRunRepos()
      • setRunRepos

        public void setRunRepos​(java.util.List<java.lang.String> repos)
      • getRunFramework

        public java.lang.String getRunFramework()
      • getRunFw

        public java.lang.String getRunFw()
      • getEE

        public EE getEE()
      • setEE

        public void setEE​(EE ee)
      • setRunFramework

        public void setRunFramework​(java.lang.String clause)
      • setRunFw

        public void setRunFw​(java.lang.String clause)
      • getRunRequires

        public java.util.List<org.osgi.resource.Requirement> getRunRequires()
      • setRunRequires

        public void setRunRequires​(java.util.List<org.osgi.resource.Requirement> requires)
      • getRunBlacklist

        public java.util.List<org.osgi.resource.Requirement> getRunBlacklist()
      • setRunBlacklist

        public void setRunBlacklist​(java.util.List<org.osgi.resource.Requirement> requires)
      • getStandaloneLinks

        public java.util.List<HeaderClause> getStandaloneLinks()
      • setStandaloneLinks

        public void setStandaloneLinks​(java.util.List<HeaderClause> headers)
      • getIgnoreStandalone

        public java.util.List<HeaderClause> getIgnoreStandalone()
      • setIgnoreStandalone

        public void setIgnoreStandalone​(java.util.List<HeaderClause> headers)
      • doGetObject

        private <R> R doGetObject​(java.lang.String name,
                                  Converter<? extends R,​? super java.lang.String> converter)
      • doRemoveObject

        private <T> void doRemoveObject​(java.lang.String name,
                                        T oldValue,
                                        T newValue,
                                        Converter<java.lang.String,​? super T> formatter)
      • doSetObject

        private <T> void doSetObject​(java.lang.String name,
                                     T oldValue,
                                     T newValue,
                                     Converter<java.lang.String,​? super T> formatter)
      • isProjectFile

        public boolean isProjectFile()
      • isBndrun

        public boolean isBndrun()
      • addPropertyChangeListener

        public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)
      • addPropertyChangeListener

        public void addPropertyChangeListener​(java.lang.String propertyName,
                                              java.beans.PropertyChangeListener listener)
      • removePropertyChangeListener

        public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)
      • removePropertyChangeListener

        public void removePropertyChangeListener​(java.lang.String propertyName,
                                                 java.beans.PropertyChangeListener listener)
      • setBndResource

        public void setBndResource​(java.io.File bndResource)
      • getBndResource

        public java.io.File getBndResource()
      • getBndResourceName

        public java.lang.String getBndResourceName()
      • setBndResourceName

        public void setBndResourceName​(java.lang.String bndResourceName)
      • getBundleBlueprint

        public java.util.List<HeaderClause> getBundleBlueprint()
      • setBundleBlueprint

        public void setBundleBlueprint​(java.util.List<HeaderClause> bundleBlueprint)
      • addBundleBlueprint

        public void addBundleBlueprint​(java.lang.String location)
      • getIncludeResource

        public java.util.List<java.lang.String> getIncludeResource()
      • setIncludeResource

        public void setIncludeResource​(java.util.List<java.lang.String> newEntries)
      • addIncludeResource

        public void addIncludeResource​(java.lang.String resource)
      • hasIncludeResourceInstruction

        private boolean hasIncludeResourceInstruction()
      • setProject

        public void setProject​(Project project)
      • getProject

        public Project getProject()
      • getWorkspace

        public Workspace getWorkspace()
      • setWorkspace

        public void setWorkspace​(Workspace workspace)
      • getGenericString

        public java.lang.String getGenericString​(java.lang.String name)
      • setGenericString

        public void setGenericString​(java.lang.String name,
                                     java.lang.String value)
      • getProperties

        public Processor getProperties()
                                throws java.lang.Exception
        Return a processor for this model. This processor is based on the parent project or the bndrun file. It will contain the properties of the project file and the changes from the model.
        Returns:
        a processor that reflects the actual project or bndrun file setup
        Throws:
        java.lang.Exception
      • cleanup

        private java.lang.String cleanup​(java.lang.String value)
      • disjunction

        private static <E> java.util.List<E> disjunction​(java.util.Collection<E> collection,
                                                         java.util.Collection<?> remove)
      • getDocumentChanges

        public java.util.Map<java.lang.String,​java.lang.String> getDocumentChanges()
        Return the saved changes in document format.
      • saveChanges

        public void saveChanges()
                         throws java.io.IOException
        If this BndEditModel was created with a project then this method will save the changes in the document and will store them in the associated file.
        Throws:
        java.io.IOException
      • store

        public static void store​(IDocument document,
                                 java.io.File file)
                          throws java.io.IOException
        Throws:
        java.io.IOException