edu.ksu.cis.projects.bogor.module
Class DefaultActionTaker
java.lang.Object
edu.ksu.cis.projects.bogor.module.DefaultActionTaker
- All Implemented Interfaces:
- ISelfDescribingModule, IActionTaker, IModule, Disposable
public class DefaultActionTaker
- extends Object
- implements IActionTaker, ISelfDescribingModule
- Version:
- CVS $Revision: 1.30 $ $Date: 2005/06/09 19:24:37 $
- Author:
- Robby , Matt Hoosier
Method Summary |
protected IValue |
checkRange(Type fromType,
Type toType,
IValue value)
|
IMessageStore |
connect(IBogorConfiguration bc)
Connects this modules to other modules. |
void |
dispose()
Remove references. |
String |
getCopyrightNotice()
Returns the copyright notice for this module. |
protected FSMSymbolTable |
getFSMSymbolTable()
|
Pair<Domain,Boolean> |
getOptionDomain(String id)
|
Collection<Triple<String,Boolean,OptionScope>> |
getOptionIds()
|
Collection<String> |
getSuggestedValues(String id,
IBogorConfiguration bc,
SymbolTable st)
|
IMessageStore |
setOptions(String key,
Properties configuration)
Sets the options for this module. |
void |
setSchedulingStrategyContextInfo(ISchedulingStrategyContext ssc,
ISchedulingStrategyInfo ssi)
|
void |
setWrittenFieldsTable(Map<IRecordValue,IntSet> writtenFieldsTable)
|
void |
setWrittenGlobalSet(IntSet writtenGlobals)
|
void |
setWrittenValueSet(Set<IValue> writtenValues)
|
IBacktrackingInfo |
takeAction(ISchedulingStrategyContext ssc,
Action a)
|
INoChangeBacktrackingInfo |
takeAssertAction(AssertAction a,
IIntValue value)
|
IArrayElementBacktrackingInfo |
takeAssignArrayElementAction(AssignAction a,
IArrayValue array,
int elementIndex,
IValue value)
|
IFieldBacktrackingInfo |
takeAssignFieldAction(AssignAction a,
IRecordValue record,
int fieldIndex,
IValue value)
|
IGlobalBacktrackingInfo |
takeAssignGlobalAction(AssignAction a,
int globalIndex,
IValue value)
|
ILocalBacktrackingInfo |
takeAssignLocalAction(AssignAction a,
int localIndex,
IValue value)
|
IBacktrackingInfo |
takeAssumeAction(AssumeAction a,
IIntValue value)
|
IExitThreadBacktrackingInfo |
takeExitThreadAction(ExitThreadAction a)
|
ILockBacktrackingInfo |
takeLockAction(LockAction a,
ILockValue value)
|
INoChangeBacktrackingInfo |
takePrintAction(PrintAction a)
|
IStartThreadBacktrackingInfo |
takeStartThreadAction(StartThreadExp e)
|
void |
takeThrowAction(ThrowAction a,
IRecordValue value)
|
void |
unsetSchedulingStrategyContextInfo()
|
boolean |
validate(String id,
String value,
IBogorConfiguration bc,
SymbolTable st,
Collection<FileMessage> errors)
Checks whether the value of a configuration option is legal. |
protected IBacktrackingInfo |
visitAssertAction(AssertAction node)
|
protected IBacktrackingInfo |
visitAssignAction(AssignAction node)
|
protected IBacktrackingInfo |
visitAssumeAction(AssumeAction node)
|
protected IBacktrackingInfo |
visitExpAction(ExpAction node)
|
protected IBacktrackingInfo |
visitExtExp(ExtExp e)
|
protected IBacktrackingInfo |
visitLockAction(LockAction node)
|
protected void |
visitThrowAction(ThrowAction node)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
at
protected IActionTaker at
bif
protected IBacktrackingInfoFactory bif
ee
protected IExpEvaluator ee
ss
protected ISchedulingStrategist ss
ssc
protected ISchedulingStrategyContext ssc
ssi
protected ISchedulingStrategyInfo ssi
sr
protected ISearcher sr
sf
protected IStateFactory sf
vf
protected IValueFactory vf
symbolTable
protected SymbolTable symbolTable
extTable
protected Map<ExtSymbolTable,IModule> extTable
writtenGlobals
protected IntSet writtenGlobals
writtenValues
protected Set<IValue> writtenValues
writtenFieldsTable
protected Map<IRecordValue,IntSet> writtenFieldsTable
DefaultActionTaker
public DefaultActionTaker()
getCopyrightNotice
public String getCopyrightNotice()
- Description copied from interface:
IModule
- Returns the copyright notice for this module.
- Specified by:
getCopyrightNotice
in interface IModule
- Returns:
- The copyright notice for this module.
Returns null if no additional notice is necessary.
setOptions
public IMessageStore setOptions(String key,
Properties configuration)
- Description copied from interface:
IModule
- Sets the options for this module.
- Specified by:
setOptions
in interface IModule
- Parameters:
key
- The key (prefix) for this module options. Must be non-null.
The key is used for module specific options.configuration
- The options for all modules. Must be non-null.
setSchedulingStrategyContextInfo
public void setSchedulingStrategyContextInfo(ISchedulingStrategyContext ssc,
ISchedulingStrategyInfo ssi)
- Specified by:
setSchedulingStrategyContextInfo
in interface IActionTaker
setWrittenFieldsTable
public void setWrittenFieldsTable(Map<IRecordValue,IntSet> writtenFieldsTable)
- Specified by:
setWrittenFieldsTable
in interface IActionTaker
setWrittenGlobalSet
public void setWrittenGlobalSet(IntSet writtenGlobals)
- Specified by:
setWrittenGlobalSet
in interface IActionTaker
setWrittenValueSet
public void setWrittenValueSet(Set<IValue> writtenValues)
- Specified by:
setWrittenValueSet
in interface IActionTaker
connect
public IMessageStore connect(IBogorConfiguration bc)
- Description copied from interface:
IModule
- Connects this modules to other modules.
- Specified by:
connect
in interface IModule
- Parameters:
bc
- The Bogor configuration containing modules to connect to.
Must be non-null.
dispose
public void dispose()
- Description copied from interface:
Disposable
- Remove references.
Once called, avoid using this object.
- Specified by:
dispose
in interface Disposable
takeAction
public IBacktrackingInfo takeAction(ISchedulingStrategyContext ssc,
Action a)
- Specified by:
takeAction
in interface IActionTaker
takeAssertAction
public INoChangeBacktrackingInfo takeAssertAction(AssertAction a,
IIntValue value)
- Specified by:
takeAssertAction
in interface IActionTaker
takeAssignArrayElementAction
public IArrayElementBacktrackingInfo takeAssignArrayElementAction(AssignAction a,
IArrayValue array,
int elementIndex,
IValue value)
- Specified by:
takeAssignArrayElementAction
in interface IActionTaker
takeAssignFieldAction
public IFieldBacktrackingInfo takeAssignFieldAction(AssignAction a,
IRecordValue record,
int fieldIndex,
IValue value)
- Specified by:
takeAssignFieldAction
in interface IActionTaker
takeAssignGlobalAction
public IGlobalBacktrackingInfo takeAssignGlobalAction(AssignAction a,
int globalIndex,
IValue value)
- Specified by:
takeAssignGlobalAction
in interface IActionTaker
takeAssignLocalAction
public ILocalBacktrackingInfo takeAssignLocalAction(AssignAction a,
int localIndex,
IValue value)
- Specified by:
takeAssignLocalAction
in interface IActionTaker
takeAssumeAction
public IBacktrackingInfo takeAssumeAction(AssumeAction a,
IIntValue value)
- Specified by:
takeAssumeAction
in interface IActionTaker
takeExitThreadAction
public IExitThreadBacktrackingInfo takeExitThreadAction(ExitThreadAction a)
- Specified by:
takeExitThreadAction
in interface IActionTaker
takeLockAction
public ILockBacktrackingInfo takeLockAction(LockAction a,
ILockValue value)
- Specified by:
takeLockAction
in interface IActionTaker
takePrintAction
public INoChangeBacktrackingInfo takePrintAction(PrintAction a)
- Specified by:
takePrintAction
in interface IActionTaker
takeStartThreadAction
public IStartThreadBacktrackingInfo takeStartThreadAction(StartThreadExp e)
- Specified by:
takeStartThreadAction
in interface IActionTaker
takeThrowAction
public void takeThrowAction(ThrowAction a,
IRecordValue value)
- Specified by:
takeThrowAction
in interface IActionTaker
unsetSchedulingStrategyContextInfo
public void unsetSchedulingStrategyContextInfo()
- Specified by:
unsetSchedulingStrategyContextInfo
in interface IActionTaker
getFSMSymbolTable
protected FSMSymbolTable getFSMSymbolTable()
checkRange
protected IValue checkRange(Type fromType,
Type toType,
IValue value)
visitAssertAction
protected IBacktrackingInfo visitAssertAction(AssertAction node)
visitAssignAction
protected IBacktrackingInfo visitAssignAction(AssignAction node)
visitAssumeAction
protected IBacktrackingInfo visitAssumeAction(AssumeAction node)
visitExpAction
protected IBacktrackingInfo visitExpAction(ExpAction node)
visitExtExp
protected IBacktrackingInfo visitExtExp(ExtExp e)
visitLockAction
protected IBacktrackingInfo visitLockAction(LockAction node)
visitThrowAction
protected void visitThrowAction(ThrowAction node)
getOptionIds
public Collection<Triple<String,Boolean,OptionScope>> getOptionIds()
- Specified by:
getOptionIds
in interface ISelfDescribingModule
- Returns:
- a set of tuples whose first element says the name of the option,
and whose second element says whether the option is required,
and whose third element says whether the option is private to
this module (and thus prefixed by the interface implemented, e.g.,
edu.ksu.cis.projects.bogor.module.ISearcher
)
or global in scope (and thus no qualifier is prepended).
getOptionDomain
public Pair<Domain,Boolean> getOptionDomain(String id)
- Specified by:
getOptionDomain
in interface ISelfDescribingModule
- Returns:
- a tuple whose first element says the domain of the option values,
and whose second element says whether the option is multivalued
(that is, a comma-separated list)
getSuggestedValues
public Collection<String> getSuggestedValues(String id,
IBogorConfiguration bc,
SymbolTable st)
- Specified by:
getSuggestedValues
in interface ISelfDescribingModule
validate
public boolean validate(String id,
String value,
IBogorConfiguration bc,
SymbolTable st,
Collection<FileMessage> errors)
- Checks whether the value of a configuration option is legal.
- Specified by:
validate
in interface ISelfDescribingModule
- Parameters:
id
- the option's name, as returned by the first tuple element of
an item returned by getOptionIds()
value
- the value of the option, or null
if unconfiguedst
- the symbol table for the BIR modelerrors
- a container into which errors should be put. Implementors
should not assume that errors
is empty upon
entry into this method; it may aggregate the results of
calling validate
on many
ISelfDescribingModule
instances.
- Returns:
true
iff the option is supported and its value is legal