rebl.core 1.0 API

The 'ReBL' package contains the classes which form the building blocks for the creation of Reusable Business Languages or Reusable Business Logic based on generic templates.

A key element of such a language is the handling of scope. The 'Scope' class therefore forms the backbone of this implementation, providing both isolation and segmentation of the business logic.

Scopes represent a 'block' of business logic and each such scope can either be nested or run sequentially.

Scopes are maintained within a parent/child list.

A scope instance holds the exception handlers which will be called in the event of an exception being thrown within that scope. If no exception handler within this scope can handle the exception, the parent scope (if any) is queried, then the exception handlers within this enclosing parent scope are called. This process will continue until either one of the exception handlers can handle the exception, or we reach the top-level scope, at which point the default system exception handler will be called (which will simply log the exception and cleanly terminate the application).

As well as exception handlers, a number of other objects can also be attached to any scope.

The list of elements held within a scope are:
  • exception handlers
  • environment objects
  • resources
  • state machines
  • component package names
  • business entities
  • monitors


Derived scope classes can also store additional information.

The sub-packages contained here form the 'Intellectual Property' of Logic:Machine Software Development Studio.

Copyright ©2017 Logic Machine Ltd.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

For further details see: www.logicmachine.co.uk/licenses/rebl or www.gnu.org/licenses
Packages
Package
Description
This package contains a range of helper classes which are used within the main code-base.
This package provides support for externalising user visible strings and error messages into locale-specific resource bundles.
This package provides base classes which can be used to define Actions to be performed on ActiveEntities within a given Business Language.
This package provides base classes which can be used to define the OwningEntities (ie Actors) which own some ActiveEntities.
This package provides a number of base-classes used to create a range of business entities, as required to construct a Business Language.
This package provides base classes which can be used to define a range of business exception classes and related exception handlers.
This package provides base classes which can be used to define resources to be made available within a scope; such resources are then available for use within the business logic running within that scope.
This package provides support for generic resource pools.
This package provides support for generic finite state machines.
This package provides support for Transactions.
This package holds a range of classes which together provide support for the definition and usage of Transactions.
This package holds a range of classes which together provide support for the definition and usage of Transactions.
This package provides XA Transaction Managers which are scope aware.
This package allows resources to be created which are aware of XA Transactions.
This package provides a basic implementation of a resource which is aware of XA Transactions.
This package provides the top-level class used to actually create a Business Language.
This package provides placeholder classes used to store contextual data for use within the Business Language.
This package provides the low-level language constructs associated with the Grammar and Vocabulary for this Business Language.
This package provides classes which are used to derive metrics from the activities of other entities.
This package provides classes which are used to monitor the health status of other entities.
This package provides the implementation of a range of classes which can be used to monitor the activities of other entities by generating various metrics.