Package org.intocps.maestro.interpreter
Class TransitionManager
- java.lang.Object
-
- org.intocps.maestro.interpreter.TransitionManager
-
- All Implemented Interfaces:
ITransitionManager
public class TransitionManager extends Object implements ITransitionManager
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.intocps.maestro.interpreter.ITransitionManager
ITransitionManager.ISpecificationProvider, ITransitionManager.ITTransitionInfo
-
-
Constructor Summary
Constructors Constructor Description TransitionManager(ITransitionManager.ISpecificationProvider specificationProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ITransitionManager.ISpecificationProvidergetSpecificationProvider()Get a provider that can deliver potential new specifications that the manager can transfer into.ITransitionManager.ITTransitionInfogetTransferInfo(org.intocps.maestro.ast.node.ATransferStm node, org.intocps.maestro.interpreter.Context ctxt, String transferToName)Check if the manager has a new spec available that is type compatible for transfervoidtransfer(Interpreter interpreter, ITransitionManager.ITTransitionInfo info)Perform the transfer - pausing the current interpretation flow and restarting a new interpreter reusing the context
-
-
-
Constructor Detail
-
TransitionManager
public TransitionManager(ITransitionManager.ISpecificationProvider specificationProvider)
-
-
Method Detail
-
getTransferInfo
public ITransitionManager.ITTransitionInfo getTransferInfo(org.intocps.maestro.ast.node.ATransferStm node, org.intocps.maestro.interpreter.Context ctxt, String transferToName) throws org.intocps.maestro.ast.analysis.AnalysisException
Description copied from interface:ITransitionManagerCheck if the manager has a new spec available that is type compatible for transfer- Specified by:
getTransferInfoin interfaceITransitionManager- Parameters:
node- the transfer node used for locationctxt- the current context which should be used to check if available identifierstransferToName- name of the spec to transfer to- Returns:
- a transfer object or null if no transfer object is found or matches the desired name
- Throws:
org.intocps.maestro.ast.analysis.AnalysisException
-
transfer
public void transfer(Interpreter interpreter, ITransitionManager.ITTransitionInfo info) throws org.intocps.maestro.ast.analysis.AnalysisException
Description copied from interface:ITransitionManagerPerform the transfer - pausing the current interpretation flow and restarting a new interpreter reusing the context- Specified by:
transferin interfaceITransitionManager- Parameters:
interpreter- to use for the transferinfo- into to transfer to- Throws:
org.intocps.maestro.ast.analysis.AnalysisException
-
getSpecificationProvider
public ITransitionManager.ISpecificationProvider getSpecificationProvider()
Description copied from interface:ITransitionManagerGet a provider that can deliver potential new specifications that the manager can transfer into. The same provider must be returned if called twice- Specified by:
getSpecificationProviderin interfaceITransitionManager- Returns:
- a specification provider
-
-