Project “Data Model” (fishbolt.model). The core of the architecture is a conceptually new data model. The model is an alternative to existing approaches to the organization of data structures in Java applications, such as Plain Old Java Object (POJOs), Enterprise JavaBeans (EJB), and others. The advantages of the model in comparison with the existing approaches are that it is more flexible in terms of adding new or changing existing functionality, more informative in terms of being able to analyze the data structure using software, and also provides the identification of most errors associated with changes in the structure data at compile time and not at run time.
The Data Model Extensions project (fishbolt.model.ext). An effective mechanism for expanding the model makes it easy to add new functionality to the model. Fishbolt offers a number of useful model extensions, which include:
* mechanism for tracking and processing events in the model
* mechanism for checking (validating) user-entered values
* data sorting mechanism, etc.
')
The Model Providers Project (fishbolt.model.provider). The model provides the ability to integrate with various data sources. The providers of the model are responsible for integrating with data sources. Providers of the model are an abstraction. Integration with one or another source is provided by a specific implementation of providers. Fishbolt offers two vendor implementations:
* project "Implementation of the model in memory" (fishbolt.model.memory) - provides data storage in RAM. Upon completion of the program, this data is completely lost. This implementation is convenient for testing developed software.
* the project “Implementing a model using Hibernate” (fishbolt.model.hibernate) - provides interaction with databases through the Hibernate technology.
To ensure integration with Hibernate, two (auxiliary) projects are designed:
* Pattern Team and Hibernate project (fishbolt.hibernate) - using a pattern, the Team encapsulates the management of Hibernate sessions and transactions, so that the client of the fishbolt.hibernate library can no longer worry about these things. The fishbolt.hibernate library can be used independently of the fishbolt.hibernate.model data model in any Java application that uses Hibernate technology.
* The Hibernate Annotations in Model project (fishbolt.model.hibernate.annotations) provides support for Hibernate annotations in data model objects.
The basis of various ideas and approaches, on which the model and its extensions are based, formed such well-known design patterns, such as "Adapter", "Team", "Listener", as well as specially designed patterns - "Set of flags", "Manager" and " The representative of the value. Implementations of the listed patterns are contained in the “General purpose patterns” project (fishbolt.common).
At the presentation tier level, Fishbolt integrates the model with various technologies and platforms:
Eclipse Platform. The plug-in project Integration with the Eclipse Platform (fishbolt.model.eclipse) allows you to easily and quickly develop user interfaces for application data models using the user interface components provided by the Eclipse platform. The plugin supports both simple components from the Standard Widget Toolkit set (input fields, drop-down lists, etc.), and complex components from the JFace set (editors, wizards, tables, trees, etc.).
In addition to the fishbolt.model.eclipse plugin, Fishbolt offers several more Eclipse plug-ins, which together form a framework for building multi-tier applications on the Eclipse platform. For more information about these plugins, see "Integration with the Eclipse Platform."
Template language FreeMarker. The FreeMarker Template Language Integration project (fishbolt.model.freemarker) provides the ability to generate reports based on the data contained in the model using FreeMarker templates.
Currently, Fishbolt is developing projects designed to greatly simplify the construction of user interfaces for applied data models in Netbeans (based on the Swing library) and in web applications.
See the details on
fishbolt.ru