net.commerce.zocalo.experiment.role
Class TradingSubject

java.lang.Object
  extended by net.commerce.zocalo.experiment.role.AbstractSubject
      extended by net.commerce.zocalo.experiment.role.TradingSubject
All Implemented Interfaces:
ExperimentSubject
Direct Known Subclasses:
Manipulator, Trader

public abstract class TradingSubject
extends AbstractSubject

base class for subjects that trade: Traders and Manipulators.


Field Summary
static java.lang.Object AssetsComponent
           
static java.lang.Object AverageComponent
           
static java.lang.Object BalanceComponent
           
static java.lang.Object PrivateDividendComponent
           
static java.lang.Object PublicDividendComponent
           
protected  Role role
           
static java.lang.Object TotalDividendComponent
           
 
Fields inherited from class net.commerce.zocalo.experiment.role.AbstractSubject
BonusComponent, MultiplierComponent, ScoreComponent, scoreExplanation
 
Constructor Summary
TradingSubject(User user, Role role)
           
 
Method Summary
 Quantity accountValueFromProperties(java.util.Properties props)
           
 void addBonus(Funds funds)
           
protected  ScoreExplanationAccumulator assetValueTable(java.util.Properties props, java.lang.String carryForwardAssetLabel, boolean keepingScore, boolean carryForward)
           
 Quantity balance()
           
 boolean canBuy(int currentRound)
           
 boolean canSell(int currentRound)
           
 Quantity cashFromProperties(java.util.Properties props)
           
 Quantity couponValue(BinaryClaim claim, Quantity actualValue)
           
 Quantity currentCouponCount(BinaryClaim claim)
           
 boolean displayCarryForwardScores(java.util.Properties props)
           
protected  boolean dormant(int currentRound)
           
 java.lang.String getHint()
           
 java.lang.String getName()
           
 User getUser()
           
 Quantity limitedCouponValue(BinaryClaim claim, Quantity actualValue, Session session)
           
protected  java.lang.String linkText()
           
 java.lang.String logConfigValues(org.apache.log4j.Logger log, java.util.Properties props, int rounds)
           
 java.lang.String pageLink()
           
 Funds payDividend(Quantity perShareDividend, Quantity shares, Position pos)
           
abstract  java.lang.String propertyWordForRole()
           
 java.lang.String publicValueLabel(java.util.Properties props)
           
 void receiveDividend(Funds funds)
           
protected  ScoreExplanationAccumulator recordActualValueExplanations(java.util.Properties props, boolean carryForward)
           
 void reduceReservesTo(Quantity perShare, Position pos)
           
 void rememberAssets(BinaryClaim claim)
           
 void rememberHoldings(BinaryClaim claim)
           
 void resetOutstandingOrders()
           
 java.lang.String roleName()
           
 void setHint(java.lang.String hint)
           
 Quantity totalDividend(BinaryClaim claim, Session session, int round)
           
 
Methods inherited from class net.commerce.zocalo.experiment.role.AbstractSubject
actualValueLabel, addScoreComponent, dividendValueLabel, dormantPeriods, getScore, getScoreComponent, getScoreComponent, getScoreExplanation, getScoreLogger, initializeDormancy, isDormant, labelFromPropertyOrDefault, linkHtml, recordBonusInfo, recordDormantInfo, recordExplanation, recordMultiplier, recordScore, resetScoreInfo, saveMultiplierIfGiven, setHintsForRound, setScore, totalAssetsLabel, totalScore
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BalanceComponent

public static final java.lang.Object BalanceComponent

AssetsComponent

public static final java.lang.Object AssetsComponent

AverageComponent

public static final java.lang.Object AverageComponent

TotalDividendComponent

public static final java.lang.Object TotalDividendComponent

PrivateDividendComponent

public static final java.lang.Object PrivateDividendComponent

PublicDividendComponent

public static final java.lang.Object PublicDividendComponent

role

protected Role role
Constructor Detail

TradingSubject

public TradingSubject(User user,
                      Role role)
Method Detail

cashFromProperties

public Quantity cashFromProperties(java.util.Properties props)

accountValueFromProperties

public Quantity accountValueFromProperties(java.util.Properties props)

propertyWordForRole

public abstract java.lang.String propertyWordForRole()

balance

public Quantity balance()

getName

public java.lang.String getName()
Specified by:
getName in class AbstractSubject

logConfigValues

public java.lang.String logConfigValues(org.apache.log4j.Logger log,
                                        java.util.Properties props,
                                        int rounds)
Specified by:
logConfigValues in interface ExperimentSubject
Overrides:
logConfigValues in class AbstractSubject

getHint

public java.lang.String getHint()

setHint

public void setHint(java.lang.String hint)

couponValue

public Quantity couponValue(BinaryClaim claim,
                            Quantity actualValue)

limitedCouponValue

public Quantity limitedCouponValue(BinaryClaim claim,
                                   Quantity actualValue,
                                   Session session)

currentCouponCount

public Quantity currentCouponCount(BinaryClaim claim)

getUser

public User getUser()

linkText

protected java.lang.String linkText()
Specified by:
linkText in class AbstractSubject

rememberHoldings

public void rememberHoldings(BinaryClaim claim)
Overrides:
rememberHoldings in class AbstractSubject

rememberAssets

public void rememberAssets(BinaryClaim claim)
Overrides:
rememberAssets in class AbstractSubject

addBonus

public void addBonus(Funds funds)
Specified by:
addBonus in class AbstractSubject

payDividend

public Funds payDividend(Quantity perShareDividend,
                         Quantity shares,
                         Position pos)
Specified by:
payDividend in class AbstractSubject

receiveDividend

public void receiveDividend(Funds funds)
Specified by:
receiveDividend in class AbstractSubject

reduceReservesTo

public void reduceReservesTo(Quantity perShare,
                             Position pos)
Specified by:
reduceReservesTo in class AbstractSubject

totalDividend

public Quantity totalDividend(BinaryClaim claim,
                              Session session,
                              int round)
                       throws ScoreException
Specified by:
totalDividend in class AbstractSubject
Throws:
ScoreException

assetValueTable

protected ScoreExplanationAccumulator assetValueTable(java.util.Properties props,
                                                      java.lang.String carryForwardAssetLabel,
                                                      boolean keepingScore,
                                                      boolean carryForward)

recordActualValueExplanations

protected ScoreExplanationAccumulator recordActualValueExplanations(java.util.Properties props,
                                                                    boolean carryForward)

pageLink

public java.lang.String pageLink()

resetOutstandingOrders

public void resetOutstandingOrders()

displayCarryForwardScores

public boolean displayCarryForwardScores(java.util.Properties props)

publicValueLabel

public java.lang.String publicValueLabel(java.util.Properties props)

canBuy

public boolean canBuy(int currentRound)

canSell

public boolean canSell(int currentRound)

dormant

protected boolean dormant(int currentRound)
Overrides:
dormant in class AbstractSubject

roleName

public java.lang.String roleName()
Specified by:
roleName in class AbstractSubject