org.ascape.model
Class HostCell

java.lang.Object
  extended by org.ascape.model.AscapeObject
      extended by org.ascape.model.Agent
          extended by org.ascape.model.LocatedAgent
              extended by org.ascape.model.Cell
                  extended by org.ascape.model.HostCell
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Location, Node, HasName, RandomFunctions

public class HostCell
extends Cell

An cell capable fo serving as a 'home' for agents. At the moment, only one agent per cell can be hosted, but note that that cell can obviosuly be an instance of Scape such as a list.

Since:
1.0
Version:
3.0
Author:
Miles Parker
See Also:
Serialized Form

Field Summary
static Conditional IS_AVAILABLE
           
static Conditional IS_OCCUPIED
           
protected  CellOccupant occupant
          The occupant, if any, of this cell.
 
Fields inherited from class org.ascape.model.Cell
CALCULATE_NEIGHBORS_RULE, neighbors, PLAY_NEIGHBORS_RULE, PLAY_RANDOM_NEIGHBOR_RULE
 
Fields inherited from class org.ascape.model.LocatedAgent
agentSize, coordinate, MOVE_RANDOM_LOCATION_RULE, RANDOM_WALK_RULE, thisUpdate
 
Fields inherited from class org.ascape.model.Agent
DEATH_RULE, FISSIONING_RULE, FORCE_DIE_RULE, FORCE_FISSION_RULE, FORCE_MOVE_RULE, INITIALIZE_RULE, ITERATE_AND_UPDATE_RULE, ITERATE_RULE, METABOLISM_RULE, MOVEMENT_RULE, PLAY_OTHER, UPDATE_RULE
 
Fields inherited from class org.ascape.model.AscapeObject
ARBITRARY_SEED, name, scape
 
Constructor Summary
HostCell()
           
 
Method Summary
 java.lang.Object clone()
          Clones the host cell, making occupant and neighbors null.
 java.util.List findAvailableNeighbors()
          Returns all neighboring cells which are available for occupation.
 LocatedAgent findNearestOccupants()
          Returns the closest agent.
 LocatedAgent findNearestOccupants(Conditional condition)
          Returns the closest agent within the specified distance from this agent that meet some condition.
 LocatedAgent findNearestOccupants(Conditional condition, boolean includeSelf, double distance)
          Returns the closest agent within the specified distance from this agent that meet some condition.
 LocatedAgent findNearestOccupants(Conditional condition, double distance)
          Returns the closest agent within the specified distance from this agent that meet some condition.
 LocatedAgent findNearestOccupants(double distance)
          Returns the closest agent within the specified distance from this agent that meet some condition.
 java.util.List findNeighboringOccupants()
          Returns all occupants of neighboring cells.
 java.util.List findOccupantsWithin(Conditional condition, boolean includeSelf, double distance)
           
 java.util.List findOccupantsWithin(Conditional condition, double distance)
           
 java.util.List findOccupantsWithin(double distance)
           
 HostCell findRandomAvailableNeighbor()
          Gets a random neighboring host cell.
 java.awt.Color getColor()
          Returns the default color for this cell (green.) Override to provide another color, or provide a different color feature for your views.
 Node getOccupant()
          Return the occupant of this cell, null if no occupant.
 boolean isAvailable()
          Is this cell available (currently unoccupied?)
 boolean isNeighborAvailable()
          Are their any neighboring cells that are available.
 void removeOccupant()
          Evict the supplied occupant.
 void setNeighborsList(java.util.List neighbors)
          Sets this cell's neighbors.
 void setOccupant(Node occupant)
          Host the supplied occupant.
 
Methods inherited from class org.ascape.model.Cell
calculateNeighbors, countNeighbors, findNeighbors, findOccupants, findRandomNeighbor, findRelative, getDistance, getNeighbors, getNeighbors, getNetwork, hostedCondition, initialize, playNeighbors, playRandomNeighbor, setNeighbors, setNetwork, toString
 
Methods inherited from class org.ascape.model.LocatedAgent
calculateDistance, calculateDistance, countWithin, countWithin, countWithin, findMaximumWithin, findNearest, findNearest, findNearest, findNearest, findNearest, findWithin, findWithin, findWithin, findWithin, getAgentSize, getCoordinate, hasWithin, hasWithin, hasWithin, isUpdateNeeded, moveAway, moveAway, moveAway, moveTo, moveToRandomLocation, moveToward, moveToward, moveToward, randomWalk, requestUpdate, requestUpdateNext, setAgentSize, setCoordinate
 
Methods inherited from class org.ascape.model.Agent
clearDeleteMarker, death, deathCondition, die, execute, execute, fission, fissionCondition, fissioning, getColor, getImage, getImage, getIteration, getRoot, isDelete, isInitialized, iterate, markForDeletion, metabolism, move, movement, movementCondition, play, scapeCreated, setInitialized, setScape, update
 
Methods inherited from class org.ascape.model.AscapeObject
diffDeep, diffDeep, diffDeepBFS, diffDeepDFS, diffDeepValidate, diffDeepVisit, equalsDeep, equalsDeep, equalsDeep, getComparisonStream, getName, getRandom, getRandomSeed, getScape, randomInRange, randomInRange, randomIs, randomToLimit, reseed, setComparisonStream, setName, setRandom, setRandomSeed
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ascape.model.space.Location
clearDeleteMarker, getCoordinate, isDelete, markForDeletion, setCoordinate
 

Field Detail

IS_AVAILABLE

public static final Conditional IS_AVAILABLE

IS_OCCUPIED

public static final Conditional IS_OCCUPIED

occupant

protected CellOccupant occupant
The occupant, if any, of this cell.

Constructor Detail

HostCell

public HostCell()
Method Detail

isAvailable

public boolean isAvailable()
Is this cell available (currently unoccupied?)

Specified by:
isAvailable in interface Node
Overrides:
isAvailable in class Cell
Returns:
true if available, false if not

getOccupant

public Node getOccupant()
Return the occupant of this cell, null if no occupant.

Specified by:
getOccupant in interface Node
Overrides:
getOccupant in class Cell
Returns:
the occupant

setNeighborsList

public void setNeighborsList(java.util.List neighbors)
Sets this cell's neighbors. Used by agent scape intialize methods to inform the cell of it's neighbors. When creating new lattice classes, be sure to set all cell's neighbors using this method. Note that this method could also be used for creating dynamic spaces!

Overrides:
setNeighborsList in class Cell
Parameters:
neighbors - the array of neighbors to set

isNeighborAvailable

public boolean isNeighborAvailable()
Are their any neighboring cells that are available. return true if adjoing cell is available, false otherwise


findRandomAvailableNeighbor

public HostCell findRandomAvailableNeighbor()
Gets a random neighboring host cell. If none available, returns null.

Specified by:
findRandomAvailableNeighbor in interface Node
Overrides:
findRandomAvailableNeighbor in class Cell
Returns:
the node

setOccupant

public void setOccupant(Node occupant)
Host the supplied occupant. Request a view update.

Specified by:
setOccupant in interface Node
Overrides:
setOccupant in class Cell
Parameters:
occupant - the occupant

removeOccupant

public void removeOccupant()
Evict the supplied occupant. Request a view update.

Overrides:
removeOccupant in class Cell

findNeighboringOccupants

public java.util.List findNeighboringOccupants()
Returns all occupants of neighboring cells.


findOccupantsWithin

public java.util.List findOccupantsWithin(Conditional condition,
                                          double distance)

findOccupantsWithin

public java.util.List findOccupantsWithin(double distance)

findOccupantsWithin

public java.util.List findOccupantsWithin(Conditional condition,
                                          boolean includeSelf,
                                          double distance)

findNearestOccupants

public LocatedAgent findNearestOccupants()
Returns the closest agent.


findNearestOccupants

public LocatedAgent findNearestOccupants(double distance)
Returns the closest agent within the specified distance from this agent that meet some condition.

Parameters:
distance - the distance agents must be within to be included

findNearestOccupants

public LocatedAgent findNearestOccupants(Conditional condition)
Returns the closest agent within the specified distance from this agent that meet some condition.

Parameters:
condition - the condition the agent must meet to be included

findNearestOccupants

public LocatedAgent findNearestOccupants(Conditional condition,
                                         double distance)
Returns the closest agent within the specified distance from this agent that meet some condition.

Parameters:
condition - the condition the agent must meet to be included
distance - the distance agents must be within to be included

findNearestOccupants

public LocatedAgent findNearestOccupants(Conditional condition,
                                         boolean includeSelf,
                                         double distance)
Returns the closest agent within the specified distance from this agent that meet some condition.

Parameters:
condition - the condition the agent must meet to be included
includeSelf - if the calling agent should be included in the search
distance - the distance agents must be within to be included

findAvailableNeighbors

public java.util.List findAvailableNeighbors()
Returns all neighboring cells which are available for occupation.


clone

public java.lang.Object clone()
Clones the host cell, making occupant and neighbors null.

Specified by:
clone in interface Location
Overrides:
clone in class Cell
Returns:
the object

getColor

public java.awt.Color getColor()
Returns the default color for this cell (green.) Override to provide another color, or provide a different color feature for your views.

Overrides:
getColor in class Agent


Copyright © 1998-2008 The Brookings Institution, NuTech Solutions, Metascape, LLC All Rights Reserved.