public class BlockDudeState extends java.lang.Object implements MutableOOState
Modifier and Type | Field and Description |
---|---|
BlockDudeAgent |
agent |
java.util.List<BlockDudeCell> |
blocks |
BlockDudeCell |
exit |
BlockDudeMap |
map |
Constructor and Description |
---|
BlockDudeState() |
BlockDudeState(BlockDudeAgent agent,
BlockDudeMap map,
BlockDudeCell exit,
BlockDudeCell... blocks) |
BlockDudeState(BlockDudeAgent agent,
BlockDudeMap map,
BlockDudeCell exit,
java.util.List<BlockDudeCell> blocks) |
BlockDudeState(int w,
int h,
int nBlocks) |
Modifier and Type | Method and Description |
---|---|
MutableOOState |
addObject(ObjectInstance o)
Adds object instance o to this state.
|
BlockDudeCell |
block(int i) |
protected int |
blockForName(java.lang.String ob) |
State |
copy()
Returns a copy of this state suitable for creating state transitions.
|
void |
copyBlocks() |
java.lang.Object |
get(java.lang.Object variableKey)
Returns the value for the given variable key.
|
int |
numObjects()
Returns the number of object instances in this state.
|
ObjectInstance |
object(java.lang.String oname)
Returns the object in this state with the name oname
|
java.util.List<ObjectInstance> |
objects()
Returns the list of object instances in this state.
|
java.util.List<ObjectInstance> |
objectsOfClass(java.lang.String oclass)
Returns all objects that belong to the object class named oclass
|
MutableOOState |
removeObject(java.lang.String oname)
Removes the object instance with the name oname from this state.
|
MutableOOState |
renameObject(java.lang.String objectName,
java.lang.String newName)
Renames the identifier for object instance o in this state to newName.
|
MutableState |
set(java.lang.Object variableKey,
java.lang.Object value)
Sets the value for the given variable key.
|
java.lang.String |
toString() |
java.util.List<java.lang.Object> |
variableKeys()
Returns the list of state variable keys.
|
public BlockDudeAgent agent
public BlockDudeMap map
public BlockDudeCell exit
public java.util.List<BlockDudeCell> blocks
public BlockDudeState()
public BlockDudeState(int w, int h, int nBlocks)
public BlockDudeState(BlockDudeAgent agent, BlockDudeMap map, BlockDudeCell exit, BlockDudeCell... blocks)
public BlockDudeState(BlockDudeAgent agent, BlockDudeMap map, BlockDudeCell exit, java.util.List<BlockDudeCell> blocks)
public MutableOOState addObject(ObjectInstance o)
MutableOOState
addObject
in interface MutableOOState
o
- the object instance to be added to this state.public MutableOOState removeObject(java.lang.String oname)
MutableOOState
removeObject
in interface MutableOOState
oname
- the name of the object instance to remove.public MutableOOState renameObject(java.lang.String objectName, java.lang.String newName)
MutableOOState
renameObject
in interface MutableOOState
objectName
- the current object namenewName
- the new name of the object instancepublic int numObjects()
OOState
numObjects
in interface OOState
public ObjectInstance object(java.lang.String oname)
OOState
public java.util.List<ObjectInstance> objects()
OOState
public java.util.List<ObjectInstance> objectsOfClass(java.lang.String oclass)
OOState
objectsOfClass
in interface OOState
oclass
- the name of the object class for which objects should be returnedpublic MutableState set(java.lang.Object variableKey, java.lang.Object value)
MutableState
set
in interface MutableState
variableKey
- the key identifier for the variable value to changevalue
- the variable value to which the variable should be set.public java.util.List<java.lang.Object> variableKeys()
State
variableKeys
in interface State
public java.lang.Object get(java.lang.Object variableKey)
State
public State copy()
State
DeepCopyState
or ShallowCopyState
annotations. If it is a shallow copy, you should not *directly*
modify any fields of a copied state without copying the fields first, or it could contaminate the state from
which the copy was made. Alternatively, use the MutableState.set(Object, Object)
method to modify
ShallowCopyState
copied states,
which for ShallowCopyState
instances should perform a safe copy-on-write operation.public BlockDudeCell block(int i)
protected int blockForName(java.lang.String ob)
public java.lang.String toString()
toString
in class java.lang.Object
public void copyBlocks()