| ch.ethz.prose.AspectManager
All known Subclasses: ch.ethz.prose.LocalAspectManager,
AspectManager | public interface AspectManager (Code) | | Interface AspectManager allows weaving and unweaving of aspects.
An aspect manager can be obtained as a singleton from ProseSystem
In the whole ProseSystem there are exactly two ExtensionManagers.
- the extension manager or current extension manager
- the test extension manager
The test aspect manager is not attached to the VM (aspect woven do not
execute advice).
The test aspect manager behaves like the normal aspect manager
but no events are reported to it, so i.e. it can be used to test an aspect
before the insertion with the real aspect manager.
version: $Revision: 1.1.1.1 $ author: Andrei Popovici |
Method Summary | |
abstract public void | abort(Object txId) Abort the transaction txId. | abstract public void | commit(Object txId) Commit the transaction txId. | public List | getAllAspects() Return a list of the current inserted extensions. | public JoinPointManager | getJoinPointManager() Return the JoinPointManager registered in this extension manager. | abstract public void | insert(Aspect asp) Insert the aspect asp into this AspectManager
The insertion
of the crosscuts belonging to the specified aspect
is done in the proper order (first crosscut is registered as
first). | abstract public void | insert(Aspect ext, Object txId) Insert the aspect ext within the boundaries of the transaction txId.
The advice corresponding to this aspects will come into effect only
after commiting txId. | public void | startup() This method has to be called before an AspectManager is used. | public void | teardown() This method has to be called before an AspectManager is destroyed. | abstract public void | withdraw(Aspect ext) Withdraw the aspect ext from this
AspectManager . | abstract public void | withdraw(Aspect ext, Object txId) Withdraw the aspect ext within the boundaries of the transaction txId.
The advice corresponding to this aspects will remain into effect only
until commiting txId. |
abort | abstract public void abort(Object txId)(Code) | | Abort the transaction txId. This implies that all aspects
withdraw during this transction remain woven, while all aspects
inserted during this transaction are never activated.
|
commit | abstract public void commit(Object txId)(Code) | | Commit the transaction txId. All woven aspects start executing
advice, all unwoven (withdrawn) aspects cease executing advice.
|
getAllAspects | public List getAllAspects()(Code) | | Return a list of the current inserted extensions.
|
getJoinPointManager | public JoinPointManager getJoinPointManager()(Code) | | Return the JoinPointManager registered in this extension manager.
|
insert | abstract public void insert(Aspect asp) throws AspectManagerException(Code) | | Insert the aspect asp into this AspectManager
The insertion
of the crosscuts belonging to the specified aspect
is done in the proper order (first crosscut is registered as
first). If several aspects extend the same join-points, the
oder in which advices are called corresponds to the priority of
the
|
insert | abstract public void insert(Aspect ext, Object txId) throws AspectManagerException(Code) | | Insert the aspect ext within the boundaries of the transaction txId.
The advice corresponding to this aspects will come into effect only
after commiting txId. Two transactions are the same if the txId objects
are equal and their hashCode generate the same values.
|
startup | public void startup()(Code) | | This method has to be called before an AspectManager is used.
|
teardown | public void teardown()(Code) | | This method has to be called before an AspectManager is destroyed.
|
withdraw | abstract public void withdraw(Aspect ext) throws AspectManagerException(Code) | | Withdraw the aspect ext from this
AspectManager . Note that the specified extension has to be the
same object as the one to be withdrawn. Because an extension usually
has its own state, the application layer using an extension
manager has to find out which extension object to withdraw, by inspecting
the getAllAspects() set.
|
withdraw | abstract public void withdraw(Aspect ext, Object txId) throws AspectManagerException(Code) | | Withdraw the aspect ext within the boundaries of the transaction txId.
The advice corresponding to this aspects will remain into effect only
until commiting txId. Two transactions are the same if the txId objects
are equal and their hashCode generate the same values.
|
|
|