- MhSnapper
- MhSnapperShape
- MhSnapperSpawner
- MhBehavior
- MhAssortment
- MhConfigItem/MhConfiguration
- MhEngine/MhSystemEngineFunction/MhEngineEntry
MhSnapper
MhSnapper
is the primary Snapper
within the abstract. All pieces of a material handling system are represented by MhSnapper
's which are differentiated by their MhSnapperShape
s and MhBehavior
s. MhSnapper
should not be overridden, but instead is provided shapes and behaviors which determine how it functions. The MhSnapperShape
contains the majority of the MhSnapper
's state, such as category, dimensions, Connector
's, and other required fields. The rest of the functionality such as graphics and snapping are controlled by the behaviors of the MhSnapper
. An MhSnapper
is provided its MhSnapperShape
and behaviors by the MhSnapperSpawner
that creates it.
The abstract uses child snappers, which are snappers that are stored on other snappers, to represent objects in a material handling system which are composed of many separate objects. MhSnapper
may have many child snappers representing the objects that compose it.
MhSnapperShape
The MhSnapperShape
of an MhSnapper
represents its identity. The MhSnapperShape
stores any state which is specific to the product being represented by the owning MhSnapper
; this can potentially include dimensions, Connector
s, categories, and any other product specific options the MhSnapper
needs to hold.
MhSnapperSpawner
An MhSnapperSpawner
is responsible for creating and configuring MhSnapper
's. MhSnapperSpawner
is used by the both the library, for a user to insert a system or piece of a system, as well as by the MhEngine
and its MhSystemEngineFunction
s to generate objects automatically. The category of an MhSnapperSpawner
informs various classes about which piece of a material handling system that the MhSnapperSpawner
spawns.For example, this is used by an MhSpawnerSelector
to provide the correct spawner to generate the different objects contained in a product line. MhSnapperSpawner
s populate the snapper spawned with the appropriate MhSnapperShape
and behaviors to provide the functionality for the object that the spawner inserts.
MhBehavior
All behavior of an MhSnapper
is determined by its MhSnapperShape
and its MhBehavior
s. The MhBehavior
class holds a specific piece of functionality for an MhSnapper
such as graphics, snapping, parts, or any other functionality usually contained within the Snapper
class. There are many pre-defined behavior classes in the abstract which are used to isolate specific functionality. For example, the MhGenericGfxBehavior
should be used for behaviors relating to Snapper
graphics. Behaviors are added to an MhSnapper
by the MhSnapperSpawner
that creates it.
MhAssortment
In the abstract, the MhAssortment
represent the details of a specific product line. This includes all the MhSnapperSpawner
s and MhBehavior
s that are required for the line as well as any of its CxFunctions
used by the MhEngine
. The MhAssortment
also contain a product line name and description, manufacturer name, and any fixed value or domains for specific product line. In addition, the MhAssortment
holds an MhSpawnerSelector
which is used to select the correct MhSnapperSpawner
to generate a product for a given category in the product line that the assortment represents.
MhConfigItem
/MhConfiguration
In the abstract, an MhConfigItem
and MhConfiguration
are used in conjunction with each other to allow a user to configure a product line, as well as provide initial values to products. The values that a user configures may not be one to one with the initial values provided to the system, as processing may need to be done on user provided values. The MhConfigItem
represents a category of values to configure, such as the dimensions of a bay. The MhConfiguration
contains a collection of MhConfigItem
s for use with the configuration dialog. The configuration dialog will reference the MhConfiguration
which has been registered to the package given to the dialog. The MhConfiguration
populates the configuration dialog based on its MhConfigItem
s.
MhEngine
/MhSystemEngineFunction
/MhEngineEntry
The abstract uses the engine pattern for configuring and manipulating the objects in a system. The MhSystemEngineFunction
is responsible for performing a specific action on an object in a system. These functions are run by the MhEngine
. The MhEngine
and its MhSystemEngineFunction
s operate on MhEngineEntry
s, which are a light weight representation of an object in a system.
The MhEngine
is responsible for the initial creation of a system, as well as manipulations of that system such as stretching or propagating the effects of a manual change. After the MhEngine
finishes running, the MhEngineEntry
s are used to create the final MhSnapper
s.
Comments
0 comments
Please sign in to leave a comment.