public class DefaultBalanceablePoolModel<ContainerType,ItemType> extends java.lang.Object implements BalanceablePoolModel<ContainerType,ItemType>
BalanceablePoolModel, providing essential arithmetic for item and container
workrates and thresholds. See subclasses for specific requirements for migrating items.| Constructor and Description |
|---|
DefaultBalanceablePoolModel(java.lang.String name) |
| Modifier and Type | Method and Description |
|---|---|
void |
dumpItemDistribution() |
void |
dumpItemDistribution(java.io.PrintStream out) |
java.util.Map<ContainerType,java.lang.Double> |
getContainerWorkrates() |
double |
getCurrentPoolWorkrate() |
double |
getHighThreshold(ContainerType container) |
java.util.Set<ItemType> |
getItemsForContainer(ContainerType node) |
java.lang.Double |
getItemWorkrate(ItemType item) |
java.util.Map<ItemType,java.lang.Double> |
getItemWorkrates(ContainerType node)
contains -1 instead of actual item workrate, for items which cannot be moved
|
Location |
getLocation(ContainerType container) |
double |
getLowThreshold(ContainerType container) |
java.lang.String |
getName() |
java.lang.String |
getName(ContainerType container) |
ContainerType |
getParentContainer(ItemType item) |
java.util.Set<ContainerType> |
getPoolContents() |
double |
getPoolHighThreshold() |
double |
getPoolLowThreshold() |
int |
getPoolSize() |
double |
getTotalWorkrate(ContainerType container) |
boolean |
isCold() |
boolean |
isHot() |
boolean |
isItemAllowedIn(ItemType item,
Location location) |
boolean |
isItemMoveable(ItemType item) |
java.lang.String |
itemDistributionToString()
Warning: this can be an expensive (time and memory) operation if there are a lot of items/containers.
|
void |
onContainerAdded(ContainerType newContainer,
double lowThreshold,
double highThreshold) |
void |
onContainerRemoved(ContainerType oldContainer) |
void |
onItemAdded(ItemType item,
ContainerType parentContainer) |
void |
onItemAdded(ItemType item,
ContainerType parentContainer,
boolean immovable) |
void |
onItemMoved(ItemType item,
ContainerType newNode) |
void |
onItemRemoved(ItemType item) |
void |
onItemWorkrateUpdated(ItemType item,
double newValue) |
public DefaultBalanceablePoolModel(java.lang.String name)
public ContainerType getParentContainer(ItemType item)
public java.util.Set<ItemType> getItemsForContainer(ContainerType node)
public java.lang.Double getItemWorkrate(ItemType item)
public double getPoolLowThreshold()
getPoolLowThreshold in interface BalanceablePoolModel<ContainerType,ItemType>public double getPoolHighThreshold()
getPoolHighThreshold in interface BalanceablePoolModel<ContainerType,ItemType>public double getCurrentPoolWorkrate()
getCurrentPoolWorkrate in interface BalanceablePoolModel<ContainerType,ItemType>public boolean isHot()
isHot in interface BalanceablePoolModel<ContainerType,ItemType>public boolean isCold()
isCold in interface BalanceablePoolModel<ContainerType,ItemType>public java.lang.String getName()
getName in interface BalanceablePoolModel<ContainerType,ItemType>public int getPoolSize()
getPoolSize in interface BalanceablePoolModel<ContainerType,ItemType>public java.util.Set<ContainerType> getPoolContents()
getPoolContents in interface BalanceablePoolModel<ContainerType,ItemType>public java.lang.String getName(ContainerType container)
getName in interface BalanceablePoolModel<ContainerType,ItemType>public Location getLocation(ContainerType container)
getLocation in interface BalanceablePoolModel<ContainerType,ItemType>public double getLowThreshold(ContainerType container)
getLowThreshold in interface BalanceablePoolModel<ContainerType,ItemType>public double getHighThreshold(ContainerType container)
getHighThreshold in interface BalanceablePoolModel<ContainerType,ItemType>public double getTotalWorkrate(ContainerType container)
getTotalWorkrate in interface BalanceablePoolModel<ContainerType,ItemType>public java.util.Map<ContainerType,java.lang.Double> getContainerWorkrates()
getContainerWorkrates in interface BalanceablePoolModel<ContainerType,ItemType>public java.util.Map<ItemType,java.lang.Double> getItemWorkrates(ContainerType node)
BalanceablePoolModelgetItemWorkrates in interface BalanceablePoolModel<ContainerType,ItemType>public boolean isItemMoveable(ItemType item)
isItemMoveable in interface BalanceablePoolModel<ContainerType,ItemType>public boolean isItemAllowedIn(ItemType item, Location location)
isItemAllowedIn in interface BalanceablePoolModel<ContainerType,ItemType>public void onItemMoved(ItemType item, ContainerType newNode)
onItemMoved in interface BalanceablePoolModel<ContainerType,ItemType>public void onContainerAdded(ContainerType newContainer, double lowThreshold, double highThreshold)
onContainerAdded in interface BalanceablePoolModel<ContainerType,ItemType>public void onContainerRemoved(ContainerType oldContainer)
onContainerRemoved in interface BalanceablePoolModel<ContainerType,ItemType>public void onItemAdded(ItemType item, ContainerType parentContainer)
onItemAdded in interface BalanceablePoolModel<ContainerType,ItemType>public void onItemAdded(ItemType item, ContainerType parentContainer, boolean immovable)
onItemAdded in interface BalanceablePoolModel<ContainerType,ItemType>public void onItemRemoved(ItemType item)
onItemRemoved in interface BalanceablePoolModel<ContainerType,ItemType>public void onItemWorkrateUpdated(ItemType item, double newValue)
onItemWorkrateUpdated in interface BalanceablePoolModel<ContainerType,ItemType>public java.lang.String itemDistributionToString()
public void dumpItemDistribution()
public void dumpItemDistribution(java.io.PrintStream out)