Package net.sf.freecol.server.ai
Class WorkerWish
- java.lang.Object
-
- net.sf.freecol.common.model.FreeColObject
-
- net.sf.freecol.server.ai.AIObject
-
- net.sf.freecol.server.ai.ValuedAIObject
-
- net.sf.freecol.server.ai.Wish
-
- net.sf.freecol.server.ai.WorkerWish
-
- All Implemented Interfaces:
java.lang.Comparable<FreeColObject>,ObjectWithId
public final class WorkerWish extends Wish
Represents the need for a worker within aColony.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringEXPERT_NEEDED_TAGprivate booleanexpertNeededWhether the exact type is needed.private static java.util.logging.Loggerloggerstatic java.lang.StringTAGprivate static java.lang.StringTRANSPORTABLE_TAGprivate static java.lang.StringUNIT_TYPE_TAGprivate UnitTypeunitTypeThe type of unit required.-
Fields inherited from class net.sf.freecol.server.ai.Wish
destination, transportable
-
Fields inherited from class net.sf.freecol.server.ai.ValuedAIObject
ascendingValueComparator, descendingValueComparator
-
Fields inherited from class net.sf.freecol.server.ai.AIObject
initialized
-
Fields inherited from class net.sf.freecol.common.model.FreeColObject
ARRAY_SIZE_TAG, DEFAULT_CLASS_INDEX, fcoComparator, ID_ATTRIBUTE_TAG, PARTIAL_ATTRIBUTE_TAG, VALUE_TAG
-
-
Constructor Summary
Constructors Constructor Description WorkerWish(AIMain aiMain, java.lang.String id)Creates a new uninitializedWorkerWishfrom the given XML-representation.WorkerWish(AIMain aiMain, FreeColXMLReader xr)Creates a newWorkerWishfrom the given XML-representation.WorkerWish(AIMain aiMain, Location destination, int value, UnitType unitType, boolean expertNeeded)Creates a newWorkerWish.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Constants.IntegrityTypecheckIntegrity(boolean fix, LogBuilder lb)AIObjects need integrity checking too.booleanequals(java.lang.Object o)UnitTypegetUnitType()Gets the type of unit needed for releasing this wish.java.lang.StringgetXMLTagName()Get the serialization tag for this object.inthashCode()protected voidreadAttributes(FreeColXMLReader xr)Reads the attributes of this object from an XML stream.booleansatisfiedBy(Unit unit)Does a specified unit satisfy this wish?<T extends AbstractGoods>
booleansatisfiedBy(T goods)Does some specified goods satisfy this wish?voidsetInitialized()Set the initialized flag in this object.java.lang.StringtoString()voidupdate(UnitType unitType, boolean expertNeeded, int value)Updates thisWorkerWishwith the given attributes.protected voidwriteAttributes(FreeColXMLWriter xw)Write the attributes of this object to a stream.-
Methods inherited from class net.sf.freecol.server.ai.Wish
dispose, getDestination, getDestinationAIColony, getTransportable, setTransportable, shouldBeStored
-
Methods inherited from class net.sf.freecol.server.ai.ValuedAIObject
getValue, setValue
-
Methods inherited from class net.sf.freecol.server.ai.AIObject
addAIObjectWithId, checkIntegrity, copyIn, getAIMain, getGame, getSpecification, isDisposed, setGame, setSpecification
-
Methods inherited from class net.sf.freecol.common.model.FreeColObject
addAbility, addFeatures, addModifier, addPropertyChangeListener, addPropertyChangeListener, apply, apply, applyModifiers, applyModifiers, arrayKey, compareIds, compareTo, containsAbilityKey, containsModifierKey, copy, copy, copy, copy, copyInCast, dumpObject, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAbilities, getAbilities, getAbilities, getAbilities, getClassIndex, getDefenceModifiers, getDisplayObject, getFeatureContainer, getFreeColObjectClass, getFreeColObjectClassByName, getId, getIdNumber, getIdType, getIdTypeByName, getModifiers, getModifiers, getModifiers, getModifiers, getObjectClassIndex, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getSortedAbilities, getSortedModifiers, getSuffix, getSuffix, hasAbility, hasAbility, hasAbility, hasListeners, hasModifier, hasModifier, hasModifier, idEquals, invokeMethod, logFreeColObjects, readChild, readChildren, readFromXML, readFromXMLPartial, removeAbilities, removeAbility, removeFeatures, removeModifier, removeModifiers, removePropertyChangeListener, removePropertyChangeListener, save, save, save, save, serialize, serialize, serialize, serialize, setId, toXML, toXML, toXMLPartial, toXMLPartial, writeChildren
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
TAG
public static final java.lang.String TAG
- See Also:
- Constant Field Values
-
unitType
private UnitType unitType
The type of unit required.
-
expertNeeded
private boolean expertNeeded
Whether the exact type is needed.
-
EXPERT_NEEDED_TAG
private static final java.lang.String EXPERT_NEEDED_TAG
- See Also:
- Constant Field Values
-
TRANSPORTABLE_TAG
private static final java.lang.String TRANSPORTABLE_TAG
- See Also:
- Constant Field Values
-
UNIT_TYPE_TAG
private static final java.lang.String UNIT_TYPE_TAG
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
WorkerWish
public WorkerWish(AIMain aiMain, java.lang.String id)
Creates a new uninitializedWorkerWishfrom the given XML-representation.- Parameters:
aiMain- The main AI-object.id- The object identifier.
-
WorkerWish
public WorkerWish(AIMain aiMain, Location destination, int value, UnitType unitType, boolean expertNeeded)
Creates a newWorkerWish.- Parameters:
aiMain- The main AI-object.destination- TheLocationin which thetransportableassigned to thisWorkerWishwill have to reach.value- The value identifying the importance of thisWish.unitType- The type of unit needed for releasing this wish completely.expertNeeded- Determines wether theunitTypeis required or not.
-
WorkerWish
public WorkerWish(AIMain aiMain, FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Creates a newWorkerWishfrom the given XML-representation.- Parameters:
aiMain- The main AI-object.xr- The input stream containing the XML.- Throws:
javax.xml.stream.XMLStreamException- if a problem was encountered during parsing.
-
-
Method Detail
-
setInitialized
public void setInitialized()
Set the initialized flag in this object. To be implemented by leaf classes, and called in their constructors plus the special case in readChild below where we resolve forward references.- Specified by:
setInitializedin classAIObject
-
update
public void update(UnitType unitType, boolean expertNeeded, int value)
Updates thisWorkerWishwith the given attributes.- Parameters:
unitType- TheUnitTypeto wish for.expertNeeded- Is an expert unit required?value- The urgency of the wish.
-
getUnitType
public UnitType getUnitType()
Gets the type of unit needed for releasing this wish.- Returns:
- The type of unit.
-
satisfiedBy
public boolean satisfiedBy(Unit unit)
Does a specified unit satisfy this wish?- Specified by:
satisfiedByin classWish- Parameters:
unit- TheUnitto test.- Returns:
- True if the unit either matches exactly if expertRequired, or at least matches in a land/naval sense if not.
-
satisfiedBy
public <T extends AbstractGoods> boolean satisfiedBy(T goods)
Does some specified goods satisfy this wish?- Specified by:
satisfiedByin classWish- Type Parameters:
T- The base type of the goods.- Parameters:
goods- The goods to test.- Returns:
- True if the goods type matches and amount is not less than that requested.
-
checkIntegrity
public Constants.IntegrityType checkIntegrity(boolean fix, LogBuilder lb)
AIObjects need integrity checking too.- Overrides:
checkIntegrityin classWish- Parameters:
fix- If true, fix problems if possible.lb- ALogBuilderto log to.- Returns:
- -1 if there are problems remaining, zero if problems were fixed, +1 if no problems found at all.
-
writeAttributes
protected void writeAttributes(FreeColXMLWriter xw) throws javax.xml.stream.XMLStreamException
Write the attributes of this object to a stream. To be overridden if required by any object that has attributes and uses the toXML(FreeColXMLWriter, String) call.- Overrides:
writeAttributesin classWish- Parameters:
xw- TheFreeColXMLWriterto write to.- Throws:
javax.xml.stream.XMLStreamException- if there are any problems writing to the stream.
-
readAttributes
protected void readAttributes(FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Reads the attributes of this object from an XML stream.- Overrides:
readAttributesin classWish- Parameters:
xr- TheFreeColXMLReaderto read from.- Throws:
javax.xml.stream.XMLStreamException- if there is a problem reading the stream.
-
getXMLTagName
public java.lang.String getXMLTagName()
Get the serialization tag for this object.- Specified by:
getXMLTagNamein classFreeColObject- Returns:
- The tag.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classFreeColObject
-
-