rescuecore
Class HashMemory

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

public class HashMemory
extends Memory

This is an implementation of Memory that stores the data in a hashtable

See Also:
Serialized Form

Field Summary
protected  java.util.Map 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
HashMemory()
          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 java.util.Map data
Constructor Detail

HashMemory

public HashMemory()
Construct a new empty memory

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