org.nthx.pat |
|
Java Source File Name | Type | Comment |
BOStorageCommand.java | Class | Command for (re)creating a business object - tagged with 'pat.bo' annotation.
When I want to solve "baptism problem", then I cannot simply put whole object
into
GenericCommand GenericCommand . |
BusinessObject.java | Interface | Every object tagged with '@@ pat.bo' (written together) will implement
this interface. |
BusinessObjectCreationInterceptor.java | Class | This one is executed on every 'pat.bo' object creation. |
CommandGenerationHelper.java | Class | Helper class for converting from real objects to fake ones (
ObjectForStreamObjectForStream ) and vice versa. |
CommandGenerationHelperTest.java | Class | Test for
CommandGenerationHelper class. |
CommandInterceptor.java | Class | An aspect for intercepting every transacted method of system. |
GenericCommand.java | Class | Generic command for storing "transaction" information and invoking
transactions.
The trick is not to store objects involved in transaction:
- target object - on which method is invoked
- argument objects
.. |
Identifiable.java | Interface | Every object tagged with 'pat.bo' will implement this interface. |
IdentifiableMixin.java | Class | Mixin for
Identifiable interface - actual implementation introduced
to all BOs. |
IdentityMap.java | Interface | Every business object (specified by '@@ pat.bo' tag) exists in this map. |
IdentityMapMixin.java | Class | Mixin for
IdentityMap interface. |
ObjectForStream.java | Class | This object wraps real business objects when they are persisted. |
Pat.java | Class | PAT: some type of 'facade' to main system features. |
Persisteble.java | Interface | A facade to some global PAT features.
This interface is introduced into root object (@@ pat.root), so it is
possible to execute code like this:
{
((Persisteble)myRoot).takeSnapshot();
}
This is part of public API. |
PersistebleAspect.java | Class | Aspect takes care of taking snapshot of system, removing objects from
identity map, and similar.. |
PrevalentSystemMixin.java | Class | "Root object" (@@ pat.root) must still be an instance of
PrevalentSystem , so this is a mixin for it. |
RootCreationInterceptor.java | Class | Aspect for intercepting starting moment of the system life --
moment of 'new MyRoot(..)'. |
TopBusinessObjectCreationInterceptor.java | Class | Aspect takes care of creating commands when any business object is being
created. |