Application context (org.springframework.context.ApplicationContext)
A spring application context holds all OpenLegacy components.

Annotation loader
An internal component which is responsible for loading annotations information into a screen entity definition, which are stored into screen entity registry.

Connection Provider (org.openlegacy.terminal.TerminalConnectionFactory )
A provider of a terminal connection which implements terminal connection, terminal field, terminal snapshot.

Page definition (org.openlegacy.layout.PageDefinition)
A page definition is created from a screen entity, and contains a page layout. Used in runtime for presenting pages from API, and in designtime for generating real Web pages.

Screen binder (org.openlegacy.EntityBinder)
An internal component which is response to convert information from a terminal snapshot/terminal send action to/from a screen entity. Handles all the various data types conversions.

Screen entity (org.openlegacy.annotations.screen.ScreenEntity)
A screen entity is a class marked with @ScreenEntity annotation. When working within an OpenLegacy project, a screen entity also gets automatically an interface of org.openlegacy.terminal.ScreenEntity, from auto generated aspect _Aspect.aj.
A screen entity represents a specific terminal screen, and contains metadata (via annotations) relevant to this screen, so it would have a friendly API.

Screen entity definition (org.openlegacy.terminal.definitions.ScreenEntityD efinition)
Contains all metadata information on a screen entity class: fields, tables, parts, actions, navigation, etc. Stored into screen entity registry.

Screen entities registry (org.openlegacy.terminal.services.ScreenEntitiesRe gistry)
A screen registry is a component which stores information about screen entities. Should be configured with package/s of screen entities and scans these package/s for screen entities/parts/tables when application context starts.

Screen part (org.openlegacy.annotations.screen.ScreenPart)
A screen part is a part of screen, typically as a static inner class. Marked with @ScreenPart. Useful for breaking a large screen into smaller fragments. A screen entity should contain a field of the type of the screen part.

Screen Recognizer (org.openlegacy.terminal.services.ScreensRecognize r)
A component responsible for identifying a given terminal snapshot as a screen entity. Default implementation is based on screen identification, but different implementation might be relevant (pattern based, external repository).

Screen table (org.openlegacy.annotations.screen.ScreenTable)
A screen table represents a list a row of a screen table. Marked with @ScreenTable. The containing screen entity should contain a field type List.

Terminal connection (org.openlegacy.terminal.TerminalConnection)
The underlying terminal connection implemented by a specific provider: TN5250J, H3270, etc. Terminal session is internally using a terminal connection for working with a terminal.

Terminal send action (org.openlegacy.terminal.TerminalSendAction)
A send action represents a list of modified fields, cursor and action to perform on a session.

Terminal session (org.openlegacy.terminal.TerminalSession)
A terminal session is a logical representation of a terminal session. Contains methods for receiving the current terminal snapshot, the currentscreen entity, requests a specific screen entity, and performs actions on the session (Enter, F keys).

Terminal snapshot (org.openlegacy.terminal.TerminalSnapshot)
A snapshot of a current state of a terminal session. Contains terminal rows, size, cursor, text. Each row contains terminal fields.