public interface

IClientContext

com.pnfsoftware.jeb.client.api.IClientContext
Known Indirect Subclasses

Class Overview

This important interface represents a client context for scripting. Client contexts are provided to JEB scripts at execution time.

Summary

Public Methods
abstract boolean closeMainProject()
Convenience method used to close the main project (if any), that is, the first project of the first engines context managed by the JEB back-end.
abstract String[] getArguments()
Get the input arguments provided to this client context.
abstract String getBaseDirectory()
Get the JEB base directory.
abstract IEnginesContext getEnginesContext()
Get the primary JEB engines context.
abstract IRuntimeProject getMainProject()
Convenience method used to retrieve the main project (if any), that is, the first project of the first engines context managed by the JEB back-end.
abstract long getMaxMemory()
Get the theoretical maximum amount of memory that JEB can allocate and use.
abstract long getProcessId()
Retrieve the process id of the Java VM executing JEB.
abstract String getProgramDirectory()
Get the JEB program directory.
abstract Version getSoftwareVersion()
Get the JEB back-end software version.
abstract Map<Object, Object> getTransientStore()
Retrieve a reference to the transient store provided by this context.
abstract long getUsedMemory()
Get the amount of memory currently used by JEB.
abstract IUnit open(String path)
Convenience method used to create a JEB project (or retrieve the current project if one is opened), load a file artifact into the project, process it, and return the resulting top-level unit.

Public Methods

public abstract boolean closeMainProject ()

Convenience method used to close the main project (if any), that is, the first project of the first engines context managed by the JEB back-end. If no project is opened, this method will return false.

Returns
  • success indicator

public abstract String[] getArguments ()

Get the input arguments provided to this client context. The returned array depends on how the context was instantiated and called.

Returns
  • an array (possibly empty) or null if arguments are irrelevant in the current context

public abstract String getBaseDirectory ()

Get the JEB base directory.

Returns
  • the base directory

public abstract IEnginesContext getEnginesContext ()

Get the primary JEB engines context.

Returns
  • the primary engines context, possibly null if none was initialized

public abstract IRuntimeProject getMainProject ()

Convenience method used to retrieve the main project (if any), that is, the first project of the first engines context managed by the JEB back-end. If no project is opened, this method will return null.

Returns
  • the main project or null

public abstract long getMaxMemory ()

Get the theoretical maximum amount of memory that JEB can allocate and use.

Returns
  • total theoretical memory that JEB could use, in bytes

public abstract long getProcessId ()

Retrieve the process id of the Java VM executing JEB.

Returns
  • JEB's PID

public abstract String getProgramDirectory ()

Get the JEB program directory. Typically, this is the bin/ sub-directory located within JEB installation folder.

Returns
  • the program directory

public abstract Version getSoftwareVersion ()

Get the JEB back-end software version.

Returns
  • the software version

public abstract Map<Object, Object> getTransientStore ()

Retrieve a reference to the transient store provided by this context. Clients may use this map to store context-level global objects. The store and its objects are not persisted with a project JDB2 database.

Interface specifications for implementations:
- Null keys are forbidden, null values are allowed
- Insertion, retrieval and deletion are thread-safe
- Iterating is not thread-safe
- The insertion order is not guaranteed during iteration

Returns
  • a non-null read-write map

public abstract long getUsedMemory ()

Get the amount of memory currently used by JEB.

Returns
  • used memory in bytes

public abstract IUnit open (String path)

Convenience method used to create a JEB project (or retrieve the current project if one is opened), load a file artifact into the project, process it, and return the resulting top-level unit.

If the input file is a JDB2 saved project, that project is opened and returned. The method will throw IllegalStateException if a project is already opened.

Parameters
path input file to be analyzed, or an existing project saved as a JDB2 database (*.jdb2)
Returns
  • the top-level unit yielded from the analysis of the provided artifact; if the input path was a JDB2 project, the top-level unit of the first project's artifact is returned
Throws
IOException on IO error