Package org.eclipse.emf.cdo.common.model

## Interface CDOPackageInfo

- All Superinterfaces:
    `Adapter`, `java.lang.Comparable<CDOPackageInfo>`, `EPackage.Descriptor`
  All Known Subinterfaces:
    `InternalCDOPackageInfo`

      public interface CDOPackageInfo
      extends Adapter, EPackage.Descriptor, java.lang.Comparable<CDOPackageInfo>

  Describes a single `package` instance of the nested package tree strucure represented by the containing `package unit`.

  While the containing package unit is in the `PROXY` state this package info acts as a `package descriptor` in the associated `package registry`. When that package unit is loaded all contained package infos/descriptors are resolved and replaced by their actual packages. At the same time the describing package info objects are attached as adapters to the resolved packages. This way the descriptive information is available before and after loading the packages.

  Author:
    Eike Stepper
  No Implement
    This interface is not intended to be implemented by clients.
  No Extend
    This interface is not intended to be extended by clients.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter

      `Adapter.Internal`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `EPackage` | `getEPackage​(boolean loadOnDemand)` | Returns the `package` described by this package info.
    `CDOPackageUnit` | `getPackageUnit()` | Returns the package unit containing this package info.
    `java.lang.String` | `getPackageURI()` | Returns the namespace URI of the package described by this package info.
    `java.lang.String` | `getParentURI()` | Returns the namespace URI of the `super package` of the package described by this package info.
    `boolean` | `isCorePackage()` | Returnes `true` if the package described by this package info is the Ecore model, `false` oterwise.
    `boolean` | `isResourcePackage()` | Returnes `true` if the package described by this package info is the Eresource model, `false` oterwise.
    `boolean` | `isSystemPackage()` | Returns `true` is this package info describes one of the models Ecore, Eresource or Etypes, `false` otherwise.
    `boolean` | `isTypePackage()` | Returnes `true` if the package described by this package info is the Etypes model, `false` oterwise.

    - ### Methods inherited from interface org.eclipse.emf.common.notify.Adapter

      `getTarget, isAdapterForType, notifyChanged, setTarget`

    - ### Methods inherited from interface java.lang.Comparable

      `compareTo`

    - ### Methods inherited from interface org.eclipse.emf.ecore.EPackage.Descriptor

      `getEFactory, getEPackage`

- - ### Method Detail

    - #### getPackageUnit

          CDOPackageUnit getPackageUnit()

      Returns the package unit containing this package info.

    - #### getPackageURI

          java.lang.String getPackageURI()

      Returns the namespace URI of the package described by this package info.

    - #### getParentURI

          java.lang.String getParentURI()

      Returns the namespace URI of the `super package` of the package described by this package info.

    - #### getEPackage

          EPackage getEPackage​(boolean loadOnDemand)

      Returns the `package` described by this package info.
      Parameters:
        `loadOnDemand` - If `true` and the containing `package unit` is not `LOADED` the package unit is implicitely loaded. If `false` and this package unit is not `LOADED` `null` is returned.

    - #### isCorePackage

          boolean isCorePackage()

      Returnes `true` if the package described by this package info is the Ecore model, `false` oterwise.

    - #### isResourcePackage

          boolean isResourcePackage()

      Returnes `true` if the package described by this package info is the Eresource model, `false` oterwise.

    - #### isTypePackage

          boolean isTypePackage()

      Returnes `true` if the package described by this package info is the Etypes model, `false` oterwise.
      Since:
        4.0

    - #### isSystemPackage

          boolean isSystemPackage()

      Returns `true` is this package info describes one of the models Ecore, Eresource or Etypes, `false` otherwise.

      Note that the models Eresource and Etypes are expected to present as generated `NATIVE` models in all deployments.