# Interface: com.pnfsoftware.jeb.core.ICoreContext
- Super interfaces: `com.pnfsoftware.jeb.util.events.IEventSource`

A core context. A core is the highest\-level object of the JEB back\-end architecture. The main  responsibility of a core is to manager engine contexts.  

  There must be at most one core context running within a JVM. Use [JebCoreService](com.pnfsoftware.jeb.core.JebCoreService.md) to  retrieve or create the core context.  

  The first thing a client does is instantiate or retrieve a context to the core.

## Abstract Method: close

Description: Terminate this core context.

## Abstract Method: closeEnginesContext
- parameter: `context`, type: `com.pnfsoftware.jeb.core.IEnginesContext`

Description: Close an engines context
parameter: context: the engines context

## Abstract Method: createEnginesContext
- parameter: `dataProvider`, type: `com.pnfsoftware.jeb.core.dao.IDataProvider`
- parameter: `clientInformation`, type: `com.pnfsoftware.jeb.core.JebClientInformation`
- return type: `com.pnfsoftware.jeb.core.IEnginesContext`
- throws: `com.pnfsoftware.jeb.core.exceptions.JebException`

Description: Create an engines context.  

  When an engines context is created, all unit identifiers are enabled. Currently, the  implementation of engines context uses a static pool for identifiers; that means that  creating an engine context will impact previously created ones: identifiers that may have  been disabled will be re\-enable. In production code, this limitation is theoretical since  only a single engines context instance should instance at any given point.
parameter: dataProvider: mandatory data provider
parameter: clientInformation: client information
return: the engines context
throws: on error

## Abstract Method: createEnginesContext
- return type: `com.pnfsoftware.jeb.core.IEnginesContext`
- throws: `com.pnfsoftware.jeb.core.exceptions.JebException`

Description: Convenience method to create a standard engines context that uses the JEB defaults provided  to [JebCoreService](com.pnfsoftware.jeb.core.JebCoreService.md) when this core object was created. The base folder will be the JEB  installation folder; standard locations will be used for plugins \(e.g. `coreplugins`  for plugins\); the `bin/jeb-engines.cfg` file will be used for the engines properties,  etc.
return: the engines context
throws: on error

## Abstract Method: getDefaultEnginesContexts
- return type: `com.pnfsoftware.jeb.core.IEnginesContext`

Description: Retrieve the first, aka default, JEB engines context.  

  If JEB has not initialized properly, this method will return null, as there may not be any  engines context. JEB core back\-end normally manages a single engines context, even though  there may be \(in exceptional circumstances\) more than a single.
return: the default engines context, or null if none exists

## Abstract Method: getOptions
- return type: `com.pnfsoftware.jeb.core.CoreOptions`

Description: Retrieve the core options.
return: core options used to initialize this context

## Abstract Method: getValue
- parameter: `functionId`, type: `int`
- parameter: `params`, type: `java.lang.Object[]`
- return type: `java.lang.Object`

Description: Retrieve an opaque value. This method is reserved for internal use.
parameter: functionId: function id
parameter: params: function parameters
return: the return value

## Abstract Method: getVersion
- return type: `com.pnfsoftware.jeb.core.Version`

Description: Get the version of this core.
return: the version, never null

## Abstract Method: listEnginesContexts
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.IEnginesContext>`

Description: Retrieve the list of engines contexts managed by the core.
return: the engines context

