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.String
EXPERT_NEEDED_TAG
private boolean
expertNeeded
Whether the exact type is needed.private static java.util.logging.Logger
logger
static java.lang.String
TAG
private static java.lang.String
TRANSPORTABLE_TAG
private static java.lang.String
UNIT_TYPE_TAG
private UnitType
unitType
The 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 uninitializedWorkerWish
from the given XML-representation.WorkerWish(AIMain aiMain, FreeColXMLReader xr)
Creates a newWorkerWish
from 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.IntegrityType
checkIntegrity(boolean fix, LogBuilder lb)
AIObjects need integrity checking too.boolean
equals(java.lang.Object o)
UnitType
getUnitType()
Gets the type of unit needed for releasing this wish.java.lang.String
getXMLTagName()
Get the serialization tag for this object.int
hashCode()
protected void
readAttributes(FreeColXMLReader xr)
Reads the attributes of this object from an XML stream.boolean
satisfiedBy(Unit unit)
Does a specified unit satisfy this wish?<T extends AbstractGoods>
booleansatisfiedBy(T goods)
Does some specified goods satisfy this wish?void
setInitialized()
Set the initialized flag in this object.java.lang.String
toString()
void
update(UnitType unitType, boolean expertNeeded, int value)
Updates thisWorkerWish
with the given attributes.protected void
writeAttributes(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 uninitializedWorkerWish
from 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
- TheLocation
in which thetransportable
assigned to thisWorkerWish
will 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 theunitType
is required or not.
-
WorkerWish
public WorkerWish(AIMain aiMain, FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Creates a newWorkerWish
from 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:
setInitialized
in classAIObject
-
update
public void update(UnitType unitType, boolean expertNeeded, int value)
Updates thisWorkerWish
with the given attributes.- Parameters:
unitType
- TheUnitType
to 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:
satisfiedBy
in classWish
- Parameters:
unit
- TheUnit
to 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:
satisfiedBy
in 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:
checkIntegrity
in classWish
- Parameters:
fix
- If true, fix problems if possible.lb
- ALogBuilder
to 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:
writeAttributes
in classWish
- Parameters:
xw
- TheFreeColXMLWriter
to 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:
readAttributes
in classWish
- Parameters:
xr
- TheFreeColXMLReader
to 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:
getXMLTagName
in classFreeColObject
- Returns:
- The tag.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classFreeColObject
-
-