org.mars_sim.msp.simulation.person.ai.job
Class Job

java.lang.Object
  extended by org.mars_sim.msp.simulation.person.ai.job.Job
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
Areologist, Botanist, Chef, Doctor, Driver, Engineer, Technician, Trader

public abstract class Job
extends java.lang.Object
implements java.io.Serializable

The Job class represents a person's job.

See Also:
Serialized Form

Field Summary
protected  java.util.List<java.lang.Class> jobMissionJoins
           
protected  java.util.List<java.lang.Class> jobMissionStarts
           
protected  java.util.List<java.lang.Class> jobTasks
           
 
Constructor Summary
Job(java.lang.String name)
          Constructor
 
Method Summary
abstract  double getCapability(Person person)
          Gets a person's capability to perform this job.
 double getJoinMissionProbabilityModifier(java.lang.Class missionClass)
          Gets the probability modifier for joining a non-job-related mission.
 java.lang.String getName()
          Gets the job's name.
abstract  double getSettlementNeed(Settlement settlement)
          Gets the base settlement need for this job.
 double getStartMissionProbabilityModifier(java.lang.Class missionClass)
          Gets the probability modifier for starting a non-job-related mission.
 double getStartTaskProbabilityModifier(java.lang.Class taskClass)
          Gets the probability modifier for starting a non-job-related task.
 boolean isJobRelatedTask(java.lang.Class taskClass)
          Checks if a task is related to this job.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jobTasks

protected java.util.List<java.lang.Class> jobTasks

jobMissionStarts

protected java.util.List<java.lang.Class> jobMissionStarts

jobMissionJoins

protected java.util.List<java.lang.Class> jobMissionJoins
Constructor Detail

Job

public Job(java.lang.String name)
Constructor

Parameters:
name - the name of the job.
Method Detail

getName

public java.lang.String getName()
Gets the job's name.

Returns:
name

getCapability

public abstract double getCapability(Person person)
Gets a person's capability to perform this job.

Parameters:
person - the person to check.
Returns:
capability (min 0.0).

getStartTaskProbabilityModifier

public double getStartTaskProbabilityModifier(java.lang.Class taskClass)
Gets the probability modifier for starting a non-job-related task.

Parameters:
taskClass - the task class
Returns:
modifier >= 0.0

getStartMissionProbabilityModifier

public double getStartMissionProbabilityModifier(java.lang.Class missionClass)
Gets the probability modifier for starting a non-job-related mission.

Parameters:
missionClass - the mission class
Returns:
modifier >= 0.0

getJoinMissionProbabilityModifier

public double getJoinMissionProbabilityModifier(java.lang.Class missionClass)
Gets the probability modifier for joining a non-job-related mission.

Parameters:
missionClass - the mission class
Returns:
modifier >= 0.0

getSettlementNeed

public abstract double getSettlementNeed(Settlement settlement)
Gets the base settlement need for this job.

Parameters:
settlement - the settlement in need.
Returns:
the base need >= 0

isJobRelatedTask

public boolean isJobRelatedTask(java.lang.Class taskClass)
Checks if a task is related to this job.

Parameters:
taskClass - the task class
Returns:
true if job related task.