Normalized Systems Glossary


Related: expanded code

Files generated by expanders are labeled artifacts. These artifacts are generated into different locations in the expansion-directory, depending on the configuration of the expander.


A Component is a reusable set of elements and harvest code, which can be expanded to create pieces of logic that together make up an application.

See also:

Custom Anchor

In expanded code, anchors define the places where custom code can be written. These anchors are recognisable by the custom keyword (e.g. // anchor:custom-imports:(start/end)). Only the code between anchors is harvested.

Custom Extension

In expanded code, custom code can be written in additional class files. Such an additional class file is called an extension.

Custom Insertion

Related: harvest

In expanded code, custom code can be written between custom anchors. An insertion consists of a (set of) code snippet(s) between custom anchors in a certain class file.

Data Element

A data element is an element representing data in the application.

See also:


An expander is a combination of a template and logic to map the model onto the template. Generates 1 artifact during expansion for each element for which it is applicable. E.g. the RemoteExpander generates a <dataElement>Remote for each data-element.

See also:


A feature is a group of small templates that are inserted into feature anchors in the artifacts if some condition is satisfied. E.g. the Claimable feature will insert extra methods in the _Bean-artifact if the expanded data-element has the option isClaimable. Features always target a set of expanders.

See also:


Root of an NSF installation. By default C:\NSF-3.0.

See also:

Task Element

A task element is an element representing a task in the application. It is usually run as part of a workflow.

See also:


Related: flow element, status field, service element

A workflow is a set of state transitions for a given data-element. Each state-transition (or state-task) describes a begin state, end state, error state and a task to execute. Using this, it is possible to implement a chain of tasks that are executed statefully.

See also: