Interface Bowl

All Known Implementing Classes:
BaseBowl, DefaultBowl

public interface Bowl
A Bowl is a generic container/context/workspace concept. Different plugin implementations may implement this for additional features.

Bowls provide access to various "Manager" classes that in turn provide access to specific types of stored objects that may be specificially grouped in the Bowl. As much as possible, Managers should generally not depend on Bowl-specific features *except* common underlying storage mechanisms that are defined as APIs on Bowl itself (this interface). For example, ConnectionManager does not directly depend on Bowl-specific attributes, except for the MetaStore.

Specific subclasses for contexts should implement their custom logic to get a MetaStore or other underlying storage, and the managers should just build on that and not have any other Bowl-specific code.

All implementations of Bowl should implement equals() and hashcode().

If available, most code that needs a Bowl should get Bowls for Management from Spoon, and for execution from TransMeta or JobMeta.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Clear any cached objects in the Bowl and its Managers
    Get a default variable space using this Bowl's context.
    default Optional<String>
    Get the path of this bowl if applicable
    Return the display name of the level.
    <T> T
    getManager(Class<T> managerClazz)
    Gets a Manager for some type of object specifically in the context of this Bowl.
    org.pentaho.metastore.api.IMetaStore
    Gets a Read-Only Metastore that handles any defaulting required for execution-time handling of metastores, for the Bowl.
    Parent Bowls are any Bowls that a particular Bowl inherits from.
    Get the SharedObjectsIO instance that is responsible for reading/writing of Shared Objects
  • Method Details

    • getMetastore

      org.pentaho.metastore.api.IMetaStore getMetastore() throws org.pentaho.metastore.api.exceptions.MetaStoreException
      Gets a Read-Only Metastore that handles any defaulting required for execution-time handling of metastores, for the Bowl.
      Returns:
      IMetaStore A metastore for execution with the Bowl. Never null.
      Throws:
      org.pentaho.metastore.api.exceptions.MetaStoreException
    • getManager

      <T> T getManager(Class<T> managerClazz) throws KettleException
      Gets a Manager for some type of object specifically in the context of this Bowl.

      Since constructing and initializing Managers can be expensive, and instances may share state or have other limitations, callers with a Bowl should use this method in favor of directly using the manager type.

      Returns:
      a manager instance, never null.
      Throws:
      KettleException - for other errors.
      See Also:
    • getParentBowls

      Set<Bowl> getParentBowls()
      Parent Bowls are any Bowls that a particular Bowl inherits from.
      Returns:
      Set<Bowl> A set of Parent Bowls. Should not be null.
    • getSharedObjectsIO

      SharedObjectsIO getSharedObjectsIO()
      Get the SharedObjectsIO instance that is responsible for reading/writing of Shared Objects
      Returns:
    • getADefaultVariableSpace

      VariableSpace getADefaultVariableSpace()
      Get a default variable space using this Bowl's context. Everytime you will get a new instance.

      Implementations may include different sets of Variables depending on what is in context for that Bowl.

      Returns:
      a default variable space.
    • getLevelDisplayName

      String getLevelDisplayName()
      Return the display name of the level. This string should be read from resource file
      Returns:
      level name
    • getBowlPath

      default Optional<String> getBowlPath()
      Get the path of this bowl if applicable
      Returns:
      the path if applicable
    • clearCache

      void clearCache()
      Clear any cached objects in the Bowl and its Managers