A Module represents an Adobe Flex Module and is used to store some basic information about that module, i.e. a name, an URL where the module from, or whether the Adobe Flex Module should be loaded on application startup.
An instance of a Preferences represents the root of a preferences XML file and aggregates all other types of preference.
A ModulePreference is used to store configuration settings in Module scope. The table model of an ModulePreference spans an unique key over the columns C_TYPE, C_OWNER and C_KEY. It's counterpart in the context of JAXB is the modulePreference element.
An ApplicationPreference is used to store a configuration setting in application scope. The table model of an ApplicationPreference spans an unique key over the columns C_TYPE and C_KEY. It's counterpart in the context of JAXB is the applicationPreference element.
An UserPreference is used to store settings specific to an User. It is always assigned to a particular User and not accessible from, nor valid for, other Users. UserPreferences cannot be overruled by any other type of Preferences.
Is a representation of an User together with her password. When an User changes her password, the current password is added to a history list of passwords. This is necessary to omit Users from setting formerly used passwords.
An User represents a human user of the system. Typically an User is assigned to one or more Roles to define security constraints. Users can have their own configuration settings in form of UserPreferences and certain user details, encapsulated in an UserDetails object that tend to be extended by projects.
A SystemUser is granted with all privileges and omits all defined security constraints. Whenever a SystemUser logs in, she is assigned to a virtual Role with the name ROLE_SYSTEM. Furthermore this kind of Role is immutable and it is not allowed for the SystemUser to change her UserDetails or UserPassword. Changing the UserPassword has to be done in the application configuration when the project is setup.
A SecurityObject is the generalization of Roles and Grants and combines common used properties of both.
A RolePreference is used to provide settings specific to an Role . These kind of Preferences is valid for the assigned Role only. Users assigned to a Role inherit these RolePreferences but a RolePreference can be overruled by an UserPreference. RolePreferences can be defined within a preferences file but also be created with the UI.
A Role is a group of Users. Basically more than one User belong to a Role. Security access policies are assigned to Roles instead of Users.
A Grant gives permission to access some kind of application object. Grants to security aware application objects can be permitted or denied for a certain Role, depending on the security configuration. Usually Grants are assigned to a Role and on or more User s are assigned to each Roles. A Grant is security aware, that means it is an concrete SecurityObject. Permissions to UI actions are managed with Grants.
An Email represents the email address of an User.
An UnitType is the type definition of an Unit. Each UnitType defines a base Unit of it's character. For example a UnitType of weights can define grams, kilograms or tons.
A definition of any kind of unit used in the application. In general, Units are defined by a particular type of UnitType and a value. For example 42 grams is a weight, whereas weight is the Unit.
A TypeStackingRule is a Rule that defines which TransportUnitType can be stacked on other types. Additionally a maximum number of TransportUnits can be defined.
A TypePlacingRule is a Rule that defines which types of TransportUnits (TransportUnitTypes) can be put on which type of Location (LocationType). A privilegeLevel is defined to order a list of allowed LocationTypes.
A TransportUnitType is a type of a certain TransportUnits. Typically to store some static attributes of TransportUnits, such as the length, the height, or the weight of TransportUnits. It is possible to group and characterize TransportUnits.
A TransportUnit is an item like a box, a toad, a bin or a palette that is moved around within a warehouse and can carry goods. Used as container to transport items like LoadUnits. It can be moved between Locations.
A Rule used as marker interface.
A LocationType is the type of Locations with same characteristics.
A LocationGroup is a logical group of Locations, grouping together Locations with same characteristics.
A Location, represents some physical as well as virtual place in a warehouse. Could be something like a storage location in the stock or a location on a conveyer. Also virtual or error locations can be modeled with a Location entity. Multiple Locations are grouped to a LocationGroup.
A Target is either a physical or a logical endpoint of any kind of order in a warehouse. A TransportOrder has a Target set, to where a TransportUnit has to be moved to.
A TransportUnitState defines a set of states for TransportUnits.
A Problem is used to signal an occurred failure.
A LocationGroupState defines possible states used for LocationGroups.
A Barcode is a printable item with an unique identifier to label TransportUnits. The identifier has a defined number of characters whereas these characters are aligned either left or right. Non filled positions of a Barcode are padded with a so called padding character.