Package org.kie.api

## Interface KieBase

- All Superinterfaces:
    `KieBaseEventManager`

      public interface KieBase
      extends KieBaseEventManager

  The KieBase is a repository of all the application's knowledge definitions. It will contain rules, processes, functions, type models. The KieBase itself does not contain runtime data, instead sessions are created from the KieBase in which data can be inserted and process instances started.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Set<String>` | `getEntryPointIds()` | Returns the set of the entry points declared and/or used in this kie base
    `FactType` | `getFactType​(String packageName, String typeName)` | Returns a reference to the `FactType` identified by the given package and type names.
    `KiePackage` | `getKiePackage​(String packageName)` | Returns a reference to the `KiePackage` identified by the given name.
    `Collection<KiePackage>` | `getKiePackages()` | Returns a collection of the `KiePackage`s that exist in this `KieBase`.
    `Collection<? extends KieSession>` | `getKieSessions()` | Returns a collection of the `KieSession`s that exist in this `KieBase`.
    `Process` | `getProcess​(String processId)` | Returns a reference to the `Process` identified by the given processId
    `Collection<Process>` | `getProcesses()` | Returns a collection of the `Process`es that exist in this `KieBase`.
    `Query` | `getQuery​(String packageName, String queryName)` | Returns a reference to the `Query` identified by the given package and query names.
    `Rule` | `getRule​(String packageName, String ruleName)` | Returns a reference to the `Rule` identified by the given package and rule names.
    `KieSession` | `newKieSession()` | Creates a new `KieSession` using the default session configuration.
    `KieSession` | `newKieSession​(KieSessionConfiguration conf, Environment environment)` | Creates a new `KieSession` using the given session configuration and/or environment.
    `KieSessionsPool` | `newKieSessionsPool​(int initialSize)` | Creates a new `KieSessionsPool` storing the sessions created from this KieBase.
    `StatelessKieSession` | `newStatelessKieSession()` | Creates a new `StatelessKieSession` using the default session configuration.
    `StatelessKieSession` | `newStatelessKieSession​(KieSessionConfiguration conf)` | Creates a new `StatelessKieSession` using the given session configuration.
    `void` | `removeFunction​(String packageName, String functionName)` | Removes a function from the specified package.
    `void` | `removeKiePackage​(String packageName)` | Removes a `KiePackage` and all the definitions it contains from the `KieBase`
    `void` | `removeProcess​(String processId)` | Removes a process.
    `void` | `removeQuery​(String packageName, String queryName)` | Removes a query from the specified package.
    `void` | `removeRule​(String packageName, String ruleName)` | Removes a rule from the specified package.

    - ### Methods inherited from interface org.kie.api.event.kiebase.KieBaseEventManager

      `addEventListener, getKieBaseEventListeners, removeEventListener`

- - ### Method Detail

    - #### getKiePackages

          Collection<KiePackage> getKiePackages()

      Returns a collection of the `KiePackage`s that exist in this `KieBase`.
      Returns:
        an immutable collection of the packages

    - #### getKiePackage

          KiePackage getKiePackage​(String packageName)

      Returns a reference to the `KiePackage` identified by the given name.
      Parameters:
        `packageName` - the name of the `KiePackage` to return
      Returns:
        the `KiePackage` identified by the the given name or null if package not found.

    - #### removeKiePackage

          void removeKiePackage​(String packageName)

      Removes a `KiePackage` and all the definitions it contains from the `KieBase`
      Parameters:
        `packageName` - the name of the `KiePackage` to remove

    - #### getRule

          Rule getRule​(String packageName,
                       String ruleName)

      Returns a reference to the `Rule` identified by the given package and rule names.
      Parameters:
        `packageName` - the package name to which the rule belongs to
        `ruleName` - the name of the rule
      Returns:
        the `Rule` object or null if not found

    - #### removeRule

          void removeRule​(String packageName,
                          String ruleName)

      Removes a rule from the specified package.
      Parameters:
        `packageName` - the package name to which the rule belongs to
        `ruleName` - the name of the rule

    - #### getQuery

          Query getQuery​(String packageName,
                         String queryName)

      Returns a reference to the `Query` identified by the given package and query names.
      Parameters:
        `packageName` - the package name to which the query belongs to
        `queryName` - the name of the query
      Returns:
        the `Query` object or null if not found.

    - #### removeQuery

          void removeQuery​(String packageName,
                           String queryName)

      Removes a query from the specified package.
      Parameters:
        `packageName` - the package name to which the query belongs to
        `queryName` - the name of the query

    - #### removeFunction

          void removeFunction​(String packageName,
                              String functionName)

      Removes a function from the specified package.
      Parameters:
        `packageName` - the package name to which the function belongs to
        `functionName` - the name of the function

    - #### getFactType

          FactType getFactType​(String packageName,
                               String typeName)

      Returns a reference to the `FactType` identified by the given package and type names.
      Parameters:
        `packageName` - the name of the package the fact belongs to
        `typeName` - the name of the type
      Returns:
        the `FactType` identified by the parameters or null if not found.

    - #### getProcess

          Process getProcess​(String processId)

      Returns a reference to the `Process` identified by the given processId
      Parameters:
        `processId` - the id of the process
      Returns:
        the `Process` identified by the given processId or null if process not found.

    - #### removeProcess

          void removeProcess​(String processId)

      Removes a process.
      Parameters:
        `processId` - the id of the process

    - #### getProcesses

          Collection<Process> getProcesses()

      Returns a collection of the `Process`es that exist in this `KieBase`.
      Returns:
        an immutable collection of the processes

    - #### newKieSession

          KieSession newKieSession​(KieSessionConfiguration conf,
                                   Environment environment)

      Creates a new `KieSession` using the given session configuration and/or environment. Either one can be null and it will use a default. Don't forget to `KieSession.dispose()` session when you are done.
      Parameters:
        `conf` - session configuration
        `environment` - environment
      Returns:
        created `KieSession`

    - #### newKieSession

          KieSession newKieSession()

      Creates a new `KieSession` using the default session configuration. Don't forget to `KieSession.dispose()` session when you are done.
      Returns:
        created `KieSession`

    - #### newKieSessionsPool

          KieSessionsPool newKieSessionsPool​(int initialSize)

      Creates a new `KieSessionsPool` storing the sessions created from this KieBase. Don't forget to `KieSessionsPool.shutdown()` the pool when you are done.
      Parameters:
        `initialSize` - the initial size of sessions in the pool
      Returns:
        created `KieSessionsPool`

    - #### getKieSessions

          Collection<? extends KieSession> getKieSessions()

      Returns a collection of the `KieSession`s that exist in this `KieBase`. Be careful as sessions are not thread-safe and could be in use elsewhere.
      Returns:
        a Collection of `KieSession`s

    - #### newStatelessKieSession

          StatelessKieSession newStatelessKieSession​(KieSessionConfiguration conf)

      Creates a new `StatelessKieSession` using the given session configuration. You do not need to call `KieSession.dispose()` on this.
      Parameters:
        `conf` - session configuration
      Returns:
        created `StatelessKieSession`

    - #### newStatelessKieSession

          StatelessKieSession newStatelessKieSession()

      Creates a new `StatelessKieSession` using the default session configuration. You do not need to call @{link #dispose()} on this.
      Returns:
        created `StatelessKieSession`

    - #### getEntryPointIds

          Set<String> getEntryPointIds()

      Returns the set of the entry points declared and/or used in this kie base
      Returns:
        a Set of entry points