org.mars_sim.msp.simulation.person.ai.task
Class NegotiateTrade

java.lang.Object
  extended by org.mars_sim.msp.simulation.person.ai.task.Task
      extended by org.mars_sim.msp.simulation.person.ai.task.NegotiateTrade
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable

public class NegotiateTrade
extends Task
implements java.io.Serializable

Task to perform a trade negotiation between the buyer and seller for a Trade mission.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.mars_sim.msp.simulation.person.ai.task.Task
effortDriven, hasDuration, person, phaseTimeCompleted, phaseTimeRequired, stressModifier, subTask, TASK_DESC_EVENT, TASK_ENDED_EVENT, TASK_NAME_EVENT, TASK_PHASE_EVENT, TASK_SUBTASK_EVENT
 
Constructor Summary
NegotiateTrade(Settlement sellingSettlement, Settlement buyingSettlement, Rover rover, java.util.Map<Good,java.lang.Integer> soldLoad, Person buyingTrader, Person sellingTrader)
          Constructor
 
Method Summary
protected  void addExperience(double time)
          Adds experience to the person's skills used in this task.
 java.util.List<java.lang.String> getAssociatedSkills()
          Gets a list of the skills associated with this task.
 java.util.Map<Good,java.lang.Integer> getBuyLoad()
          Gets the buy load for the trade.
 int getEffectiveSkillLevel()
          Gets the effective skill level a person has at this task.
protected  double performMappedPhase(double time)
          Performs the method mapped to the task's current phase.
 
Methods inherited from class org.mars_sim.msp.simulation.person.ai.task.Task
addPhase, compareTo, endTask, getCreateEvents, getCrowdingProbabilityModifier, getDescription, getDuration, getName, getPhase, getProbability, getRelationshipModifier, getSubTask, getTeacher, getTeachingExperienceModifier, getTimeCompleted, getTopPhase, hasTeacher, isDone, isEffortDriven, setCreateEvents, setDescription, setDuration, setName, setPhase, setStressModifier, setTeacher, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NegotiateTrade

public NegotiateTrade(Settlement sellingSettlement,
                      Settlement buyingSettlement,
                      Rover rover,
                      java.util.Map<Good,java.lang.Integer> soldLoad,
                      Person buyingTrader,
                      Person sellingTrader)
               throws java.lang.Exception
Constructor

Parameters:
sellingSettlement - the selling settlement.
buyingSettlement - the buying settlement.
rover - the rover to transport the goods.
soldLoad - the goods sold.
buyingTrader - the buying trader.
sellingTrader - the selling trader.
Throws:
java.lang.Exception - if error creating the task.
Method Detail

addExperience

protected void addExperience(double time)
Adds experience to the person's skills used in this task.

Specified by:
addExperience in class Task
Parameters:
time - the amount of time (ms) the person performed this task.

getAssociatedSkills

public java.util.List<java.lang.String> getAssociatedSkills()
Gets a list of the skills associated with this task. May be empty list if no associated skills.

Specified by:
getAssociatedSkills in class Task
Returns:
list of skills as strings

getEffectiveSkillLevel

public int getEffectiveSkillLevel()
Gets the effective skill level a person has at this task.

Specified by:
getEffectiveSkillLevel in class Task
Returns:
effective skill level

performMappedPhase

protected double performMappedPhase(double time)
                             throws java.lang.Exception
Performs the method mapped to the task's current phase.

Specified by:
performMappedPhase in class Task
Parameters:
time - the amount of time (millisol) the phase is to be performed.
Returns:
the remaining time (millisol) after the phase has been performed.
Throws:
java.lang.Exception - if error in performing phase or if phase cannot be found.

getBuyLoad

public java.util.Map<Good,java.lang.Integer> getBuyLoad()
Gets the buy load for the trade.

Returns:
buy load or null if not determined yet.