Interface IProject

  • All Superinterfaces:
    Serviceable
    All Known Subinterfaces:
    IAttachedProject, IPrimaryProject

    @OpenApiAll
    public interface IProject
    extends Serviceable
    Represents a compound bundle of 'things' that are persisted as a whole. How this persistence works is entirely up to implementations. This interface is typically not directly implemented, but serves as the base class for other interfaces.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addProjectListener​(com.nomagic.ci.persistence.ProjectListener projectListener)
      Adds listener to project's listener list
      java.lang.String getDescription()
      Gets the project description.
      <T extends com.nomagic.ci.persistence.features.IProjectFeature>
      T
      getFeature​(java.lang.Class<T> featureType)
      Gets the installed feature by feature type.
      com.nomagic.ci.persistence.features.FeatureDataManager getFeatureDataManager​(com.nomagic.ci.persistence.features.IProjectFeatureDescriptor feature, com.nomagic.ci.persistence.features.FeatureDataSetFilter... featureResourceFilters)
      Gets feature data manager for given feature where feature data sets for managing are limited to those defined by provided filters.
      java.util.Set<java.lang.String> getInstalledFeatures()
      Gets the set of feature names that has been installed in this project.
      org.eclipse.emf.common.util.URI getLocationURI()
      Gets the project URI.
      java.lang.String getName()
      Returns the project name
      com.nomagic.ci.persistence.ProjectDescriptor getProjectDescriptor()
      Returns project descriptor.
      java.lang.String getProjectID()
      Gets the project ID.
      java.util.List<com.nomagic.ci.persistence.ProjectListener> getProjectListeners()
      Gets all registered project listeners
      com.nomagic.ci.persistence.IProjectRepository getProjectRepository()
      Returns project repository where project is stored.
      org.eclipse.emf.ecore.resource.ResourceSet getResourceSet()
      Gets the resource set used by this project.
      void installFeatures​(java.util.Set<java.lang.String> featureNames, org.eclipse.core.runtime.IProgressMonitor monitor)
      Installs given features to the primary project.
      boolean isNew()
      Determines, whether the project is new, that is, if it newer was saved before
      boolean isReadOnly()
      Returns repository state.
      void removeProjectListener​(com.nomagic.ci.persistence.ProjectListener projectListener)
      Removes listener from notified list
      void setDescription​(java.lang.String description)
      Sets the project description
      void setName​(java.lang.String name)
      Sets the project name
      void uninstallFeatures​(java.util.Set<java.lang.String> featureNames, org.eclipse.core.runtime.IProgressMonitor monitor)
      Remove data associated with the feature.
    • Method Detail

      • getProjectRepository

        com.nomagic.ci.persistence.IProjectRepository getProjectRepository()
        Returns project repository where project is stored.
        Returns:
        owning project repository
      • getLocationURI

        org.eclipse.emf.common.util.URI getLocationURI()
        Gets the project URI.
        Returns:
        a URI designating the project location of this instance.
      • getProjectID

        java.lang.String getProjectID()
        Gets the project ID.
        Returns:
        project ID that doesn't change though project life cycle.
      • isReadOnly

        boolean isReadOnly()
        Returns repository state. True if write operation not allowed.
        Returns:
        true if read only
      • getName

        java.lang.String getName()
        Returns the project name
        Returns:
        the project name
      • setName

        void setName​(java.lang.String name)
        Sets the project name
        Parameters:
        name - the name to set
      • getDescription

        java.lang.String getDescription()
        Gets the project description.
        Returns:
        project description string
      • setDescription

        void setDescription​(java.lang.String description)
        Sets the project description
        Parameters:
        description - project description string
      • getProjectDescriptor

        com.nomagic.ci.persistence.ProjectDescriptor getProjectDescriptor()
        Returns project descriptor. The same as IProjectRepository.getProjectDescriptor(URI, IProgressMonitor), but also return a descriptor if the project is new.
        Returns:
        the project descriptor
      • getFeature

        <T extends com.nomagic.ci.persistence.features.IProjectFeature> T getFeature​(java.lang.Class<T> featureType)
        Gets the installed feature by feature type.
        Type Parameters:
        T - type of the feature
        Parameters:
        featureType - feature class
        Returns:
        The project feature or null if feature was not installed the project
      • getInstalledFeatures

        java.util.Set<java.lang.String> getInstalledFeatures()
        Gets the set of feature names that has been installed in this project. If there are no features installed returns empty set
        Returns:
        set of feature descriptors.
      • getFeatureDataManager

        com.nomagic.ci.persistence.features.FeatureDataManager getFeatureDataManager​(com.nomagic.ci.persistence.features.IProjectFeatureDescriptor feature,
                                                                                     @CheckForNull
                                                                                     com.nomagic.ci.persistence.features.FeatureDataSetFilter... featureResourceFilters)
        Gets feature data manager for given feature where feature data sets for managing are limited to those defined by provided filters. Note: if certain filters conflict with each other, then the behavior of the resource manager is not specified. Conflicting filters are such filters that accept non-intersecting scopes of all data sets
        Parameters:
        feature - the feature
        featureResourceFilters - the feature data set filter
        Returns:
        the manager for managing feature data sets
      • installFeatures

        void installFeatures​(java.util.Set<java.lang.String> featureNames,
                             org.eclipse.core.runtime.IProgressMonitor monitor)
                      throws com.nomagic.ci.persistence.PersistenceException
        Installs given features to the primary project. Any required features will be installed as well. The method has no effect only if the required feature is already installed.
        Parameters:
        featureNames - names of the features to install
        monitor - the progress monitor for the operation
        Throws:
        com.nomagic.ci.persistence.PersistenceException
      • uninstallFeatures

        void uninstallFeatures​(java.util.Set<java.lang.String> featureNames,
                               org.eclipse.core.runtime.IProgressMonitor monitor)
                        throws com.nomagic.ci.persistence.PersistenceException
        Remove data associated with the feature. Any dependent features will be removed as well.
        Parameters:
        featureNames - names of the features to un-install
        monitor - the progress monitor for the operation
        Throws:
        com.nomagic.ci.persistence.PersistenceException
      • getResourceSet

        org.eclipse.emf.ecore.resource.ResourceSet getResourceSet()
        Gets the resource set used by this project.
        Returns:
        the resource set.
      • isNew

        boolean isNew()
        Determines, whether the project is new, that is, if it newer was saved before
        Returns:
        true if project is new, otherwise false
      • addProjectListener

        void addProjectListener​(com.nomagic.ci.persistence.ProjectListener projectListener)
        Adds listener to project's listener list
        Parameters:
        projectListener - that should be
      • removeProjectListener

        void removeProjectListener​(com.nomagic.ci.persistence.ProjectListener projectListener)
        Removes listener from notified list
        Parameters:
        projectListener - pro
      • getProjectListeners

        java.util.List<com.nomagic.ci.persistence.ProjectListener> getProjectListeners()
        Gets all registered project listeners
        Returns:
        all listeners that are subscribed