rescuecore
Class ArrayMemory

java.lang.Object
  extended byrescuecore.Memory
      extended byrescuecore.ArrayMemory
All Implemented Interfaces:
RescueConstants, java.io.Serializable

public class ArrayMemory
extends Memory

This is an implementation of Memory that stores the data in an array

See Also:
Serialized Form

Field Summary
protected  RescueObject[] data
           
 
Fields inherited from interface rescuecore.RescueConstants
AGENT_TYPE_AMBULANCE_CENTER, AGENT_TYPE_AMBULANCE_TEAM, AGENT_TYPE_ANY, AGENT_TYPE_ANY_AGENT, AGENT_TYPE_ANY_BUILDING, AGENT_TYPE_ANY_MOBILE, AGENT_TYPE_CIVILIAN, AGENT_TYPE_FIRE_BRIGADE, AGENT_TYPE_FIRE_STATION, AGENT_TYPE_POLICE_FORCE, AGENT_TYPE_POLICE_OFFICE, AK_ACKNOWLEDGE, AK_CLEAR, AK_CONNECT, AK_EXTINGUISH, AK_LOAD, AK_MOVE, AK_RESCUE, AK_REST, AK_SAY, AK_TELL, AK_UNLOAD, BYTE_SIZE, COMMAND_ACKNOWLEDGE, COMMAND_CLEAR, COMMAND_CONNECT, COMMAND_EXTINGUISH, COMMAND_LOAD, COMMAND_MOVE, COMMAND_RESCUE, COMMAND_REST, COMMAND_SAY, COMMAND_TELL, COMMAND_UNLOAD, FIERYNESS_BURNING, FIERYNESS_BURNT_OUT, FIERYNESS_HEATING, FIERYNESS_INFERNO, FIERYNESS_MODERATELY_BURNT, FIERYNESS_NOT_BURNT, FIERYNESS_SLIGHTLY_BURNT, FIERYNESS_VERY_BURNT, GK_CONNECT_ERROR, GK_CONNECT_OK, HEADER_NULL, INT_SIZE, INTERNAL_TYPE_AMBULANCE_CENTER, INTERNAL_TYPE_AMBULANCE_TEAM, INTERNAL_TYPE_ANY_BUILDING, INTERNAL_TYPE_ANY_HUMANOID, INTERNAL_TYPE_ANY_PLATOON, INTERNAL_TYPE_BUILDING, INTERNAL_TYPE_CAR, INTERNAL_TYPE_CIVILIAN, INTERNAL_TYPE_FIRE_BRIGADE, INTERNAL_TYPE_FIRE_STATION, INTERNAL_TYPE_NODE, INTERNAL_TYPE_POLICE_FORCE, INTERNAL_TYPE_POLICE_OFFICE, INTERNAL_TYPE_REFUGE, INTERNAL_TYPE_RIVER, INTERNAL_TYPE_RIVER_NODE, INTERNAL_TYPE_ROAD, INTERNAL_TYPE_WORLD, KA_CONNECT_ERROR, KA_CONNECT_OK, KA_HEAR, KA_SENSE, KG_ACKNOWLEDGE, KG_CONNECT, KG_UPDATE, KS_COMMANDS, KS_CONNECT_ERROR, KS_CONNECT_OK, KS_UPDATE, KV_CONNECT_ERROR, KV_CONNECT_OK, KV_UPDATE, MAX_CENTER_MESSAGES, MAX_EXTINGUISH_DISTANCE, MAX_EXTINGUISH_POWER, MAX_HP, MAX_PLATOON_MESSAGES, MAX_RESCUE_DISTANCE, MAX_WATER, PROPERTY_BLOCK, PROPERTY_BROKENNESS, PROPERTY_BUILDING_APEXES, PROPERTY_BUILDING_AREA_GROUND, PROPERTY_BUILDING_AREA_TOTAL, PROPERTY_BUILDING_ATTRIBUTES, PROPERTY_BUILDING_CODE, PROPERTY_BUILDING_SHAPE_ID, PROPERTY_BURIEDNESS, PROPERTY_CARS_PASS_TO_HEAD, PROPERTY_CARS_PASS_TO_TAIL, PROPERTY_DAMAGE, PROPERTY_DIRECTION, PROPERTY_EDGES, PROPERTY_ENTRANCES, PROPERTY_FIERYNESS, PROPERTY_FLOORS, PROPERTY_HEAD, PROPERTY_HP, PROPERTY_HUMANS_PASS_TO_HEAD, PROPERTY_HUMANS_PASS_TO_TAIL, PROPERTY_IGNITION, PROPERTY_LATITUDE, PROPERTY_LENGTH, PROPERTY_LINES_TO_HEAD, PROPERTY_LINES_TO_TAIL, PROPERTY_LONGITUDE, PROPERTY_MAX, PROPERTY_MEDIAN_STRIP, PROPERTY_NULL, PROPERTY_POCKET_TO_TURN_ACROSS, PROPERTY_POSITION, PROPERTY_POSITION_EXTRA, PROPERTY_POSITION_HISTORY, PROPERTY_REPAIR_COST, PROPERTY_ROAD_KIND, PROPERTY_SHORTCUT_TO_TURN, PROPERTY_SIGNAL, PROPERTY_SIGNAL_TIMING, PROPERTY_STAMINA, PROPERTY_START_TIME, PROPERTY_STRETCHED_LENGTH, PROPERTY_TAIL, PROPERTY_TYPE_BOOLEAN, PROPERTY_TYPE_INT, PROPERTY_TYPE_INT_ARRAY, PROPERTY_WATER_QUANTITY, PROPERTY_WIDTH, PROPERTY_WIDTH_FOR_WALKERS, PROPERTY_WIND_DIRECTION, PROPERTY_WIND_FORCE, PROPERTY_X, PROPERTY_Y, SAY_LENGTH, SHORT_SIZE, SK_ACKNOWLEDGE, SK_CONNECT, SK_UPDATE, TELL_LENGTH, TYPE_AMBULANCE_CENTER, TYPE_AMBULANCE_TEAM, TYPE_BUILDING, TYPE_CAR, TYPE_CIVILIAN, TYPE_FIRE_BRIGADE, TYPE_FIRE_STATION, TYPE_NODE, TYPE_NULL, TYPE_POLICE_FORCE, TYPE_POLICE_OFFICE, TYPE_REFUGE, TYPE_RIVER, TYPE_RIVER_NODE, TYPE_ROAD, TYPE_WORLD, VK_ACKNOWLEDGE, VK_CONNECT
 
Constructor Summary
ArrayMemory()
          Construct a new empty memory
ArrayMemory(int size, int factor)
          Construct a new empty memory
 
Method Summary
 void add(RescueObject o, int timestamp)
          Add a new object
 RescueObject[] getAllObjects()
          Get all objects in memory
 java.util.Collection getAllObjectsAsCollection()
          Get all objects in memory as a Collection
 RescueObject[] getObjectsOfInternalType(int type)
          Get all objects of a particular internal type
 RescueObject[] getObjectsOfType(int type)
          Get all objects of a particular type
 RescueObject lookup(int id)
          Look up a RescueObject by id
 void remove(RescueObject o)
          Remove an object from the memory
 
Methods inherited from class rescuecore.Memory
addMemoryListener, canPass, findBuildingNeighbours, findNeighbours, findNodeNeighbours, findRoadNeighbours, getAngle, getClosestNode, getClosestNode, getDistance, getHeight, getWidth, getXY, removeMemoryListener, update, updateFromKA_SENSE, updateFromKS_UPDATE
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

protected RescueObject[] data
Constructor Detail

ArrayMemory

public ArrayMemory()
Construct a new empty memory


ArrayMemory

public ArrayMemory(int size,
                   int factor)
Construct a new empty memory

Parameters:
size - The initial size of the array
factor - The amount to increase the array by if we run out of room
Method Detail

lookup

public RescueObject lookup(int id)
Description copied from class: Memory
Look up a RescueObject by id

Specified by:
lookup in class Memory
Parameters:
id - The id of the object we want
Returns:
The object with the given id, or null if there are no objects with that id

getAllObjects

public RescueObject[] getAllObjects()
Description copied from class: Memory
Get all objects in memory

Specified by:
getAllObjects in class Memory
Returns:
An array of all objects in memory

getAllObjectsAsCollection

public java.util.Collection getAllObjectsAsCollection()
Description copied from class: Memory
Get all objects in memory as a Collection

Specified by:
getAllObjectsAsCollection in class Memory
Returns:
A Collection of all objects in memory

getObjectsOfType

public RescueObject[] getObjectsOfType(int type)
Description copied from class: Memory
Get all objects of a particular type

Specified by:
getObjectsOfType in class Memory
Parameters:
type - The type we want
Returns:
An array of all objects of the given type
See Also:
RescueConstants.TYPE_CIVILIAN, RescueConstants.TYPE_FIRE_BRIGADE, RescueConstants.TYPE_AMBULANCE_TEAM, RescueConstants.TYPE_POLICE_FORCE, RescueConstants.TYPE_ROAD, RescueConstants.TYPE_NODE, RescueConstants.TYPE_RIVER, RescueConstants.TYPE_RIVER_NODE, RescueConstants.TYPE_BUILDING, RescueConstants.TYPE_REFUGE, RescueConstants.TYPE_FIRE_STATION, RescueConstants.TYPE_AMBULANCE_CENTER, RescueConstants.TYPE_POLICE_OFFICE, RescueConstants.TYPE_WORLD, RescueConstants.TYPE_CAR

getObjectsOfInternalType

public RescueObject[] getObjectsOfInternalType(int type)
Description copied from class: Memory
Get all objects of a particular internal type

Specified by:
getObjectsOfInternalType in class Memory
Parameters:
type - The type we want
Returns:
An array of all objects of the given internal type
See Also:
RescueConstants.INTERNAL_TYPE_CIVILIAN, RescueConstants.INTERNAL_TYPE_FIRE_BRIGADE, RescueConstants.INTERNAL_TYPE_AMBULANCE_TEAM, RescueConstants.INTERNAL_TYPE_POLICE_FORCE, RescueConstants.INTERNAL_TYPE_CAR, RescueConstants.INTERNAL_TYPE_BUILDING, RescueConstants.INTERNAL_TYPE_REFUGE, RescueConstants.INTERNAL_TYPE_FIRE_STATION, RescueConstants.INTERNAL_TYPE_POLICE_OFFICE, RescueConstants.INTERNAL_TYPE_AMBULANCE_CENTER, RescueConstants.INTERNAL_TYPE_ROAD, RescueConstants.INTERNAL_TYPE_NODE, RescueConstants.INTERNAL_TYPE_RIVER, RescueConstants.INTERNAL_TYPE_RIVER_NODE, RescueConstants.INTERNAL_TYPE_WORLD, RescueConstants.INTERNAL_TYPE_ANY_BUILDING, RescueConstants.INTERNAL_TYPE_ANY_HUMANOID

add

public void add(RescueObject o,
                int timestamp)
Description copied from class: Memory
Add a new object

Overrides:
add in class Memory
Parameters:
o - The new object
timestamp - The time that this object is added

remove

public void remove(RescueObject o)
Description copied from class: Memory
Remove an object from the memory

Overrides:
remove in class Memory
Parameters:
o - The object to be removed