-
Notifications
You must be signed in to change notification settings - Fork 1
LIMO Developer Documentation
- LIMO-parent
- LIMO-branding
- LIMO-app
- LIMO-API
- LIMO-orientDB
- LIMO-view
- LIMO-dependencyWrapper
- LIMO-domain
- LIMO-service
- LIMO-simulation
- LIMO-externalTrader
The LIMO application consists of three layers. In Fig.1 you can see layers and the hierarchy of the layers.
View and Functionality Layer(VFL)
↓
Service Layer(SL)
↓
Database Access Layer(DAL)
Fig.1: LIMO layers
The lowest layer is the Database access layer(DAL). It provides DAOs which provide access methods like select, delete, add and update entries.
In Fig.1 you can see that the Service layer is on top of the Database access layer. It is responsible for the communication between Database access layer and the VFL. All request form the view to acces the database are handled by a Service implementation. For each DAO there is a service class, in which extra functionality is added e.g. notify user that deletion of entity was successfull.
The LIMO application consist of one Maven POM project. This project is called LIMO-parent and includes 10 Netbeans module projects. These modules are:
- LIMO-branding
- LIMO-app
- LIMO-API
- LIMO-orientDB
- LIMO-view
- LIMO-dependencyWrapper
- LIMO-domain
- LIMO-service
- LIMO-simulation
- LIMO-externalTrader
Fig.2 describes which projects are available in LIMO. Moreover, it describes the dependencies of the projects.

Go back to top ###LIMO-branding Logicless module providing branding (e.g. the splash screen). This is a standard module for a NetBeans platform application.
Go back to top ###LIMO-app This is a standart module for Maven based Netbeans Platfrom projects. This project is used to run the application. It loads and starts all modules.
Go back to top ###LIMO-API The LIMO-API module is the general Application Interface for LIMO. These general interfaces describe the design of the Service Layer and the Database Access Layer. The Database Access Layer contains a DAO for each enitity that can be stored in the database. These DAOs are defined by the api project. For exmaple there is a HubDAO. In addition to that, the api project contains the definition of the Service classes.
Go back to top ###LIMO-orientDB The orientDB project is the implementation of the Database Access Layers. In this projects all DAO interfaces from the LIMO-API project are implemented. Beyond that, it contains a class which handles the creation and closing of a database connection. The current implemented connector uses OrientDB as database.
Go back to top ###LIMO-view The View project and the Simulation project are the implementation of the View and Functionality Layer. It contains Netbeans Platform specific GUI implementations like Wizards. Additonaly, it provides most parts of the functionality of LIMO. With this project new hubs, legs, supply chain etc. can be created and displayed in the GUI.
Go back to top ###LIMO-dependencyWrapper The dependencyWrapper is used to share the same jar files for dependencies between modules. If you add a dependency to two modules directly, Maven will add a jar for the dependecy to each module. This can cause problems when sharing objects between modules that are manipulated at runtime, as is done by OrientDB. To be able to share a dependency, it's packages need to be declared public in the POM file.
Go back to top ###LIMO-domain The domain project contains all domain specific objects from the LIMO application. These objects are used to create a supply chain. For example there are implementations for Hub, different Legs, distrubution possibilities, etc.
Go back to top ###LIMO-service The service project is the implementation of the Service Layer. All classes are implementations of the service interface which were defined in the API project.
Go back to top ###LIMO-simulation The simulation project is the scecond part of the GUI and Functionality Layer. In this project the simulation of one or more supplied changes is implemented.
Go back to top ###LIMO-externalTrader The external project contains a CSV and a JSON exporter implementation. Moreover, it contains a JSON importer implementation.