public class DefaultFollowTheSunModel<ContainerType,ItemType> extends java.lang.Object implements FollowTheSunModel<ContainerType,ItemType>
| Constructor and Description | 
|---|
| DefaultFollowTheSunModel(java.lang.String name) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | dumpItemDistribution() | 
| void | dumpItemDistribution(java.io.PrintStream out) | 
| java.util.Set<ContainerType> | getAvailableContainersFor(ItemType item,
                         Location location) | 
| Location | getContainerLocation(ContainerType container) | 
| java.util.Map<ItemType,java.util.Map<Location,java.lang.Double>> | getDirectSendsToItemByLocation() | 
| ContainerType | getItemContainer(ItemType item) | 
| Location | getItemLocation(ItemType item) | 
| java.util.Set<ItemType> | getItems() | 
| java.lang.String | getName() | 
| java.lang.String | getName(ItemType item) | 
| boolean | hasActiveMigration(ItemType item) | 
| 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. | 
| static <K,V> java.util.Map<K,V> | newHashMap(K k,
          V v) | 
| void | onContainerAdded(ContainerType container,
                Location location) | 
| void | onContainerLocationUpdated(ContainerType container,
                          Location location) | 
| void | onContainerRemoved(ContainerType container) | 
| void | onItemAdded(ItemType item,
           ContainerType container,
           boolean immovable) | 
| void | onItemMoved(ItemType item,
           ContainerType newContainer) | 
| void | onItemRemoved(ItemType item) | 
| void | onItemUsageUpdated(ItemType item,
                  java.util.Map<? extends ItemType,java.lang.Double> newValue) | 
| static double | sum(java.util.Collection<? extends java.lang.Number> values) | 
public java.util.Set<ItemType> getItems()
getItems in interface FollowTheSunModel<ContainerType,ItemType>public ContainerType getItemContainer(ItemType item)
getItemContainer in interface FollowTheSunModel<ContainerType,ItemType>public Location getItemLocation(ItemType item)
getItemLocation in interface FollowTheSunModel<ContainerType,ItemType>public Location getContainerLocation(ContainerType container)
getContainerLocation in interface FollowTheSunModel<ContainerType,ItemType>public java.lang.String getName()
getName in interface FollowTheSunModel<ContainerType,ItemType>public java.lang.String getName(ItemType item)
getName in interface FollowTheSunModel<ContainerType,ItemType>public boolean isItemMoveable(ItemType item)
isItemMoveable in interface FollowTheSunModel<ContainerType,ItemType>public boolean isItemAllowedIn(ItemType item, Location location)
isItemAllowedIn in interface FollowTheSunModel<ContainerType,ItemType>public boolean hasActiveMigration(ItemType item)
hasActiveMigration in interface FollowTheSunModel<ContainerType,ItemType>public java.util.Map<ItemType,java.util.Map<Location,java.lang.Double>> getDirectSendsToItemByLocation()
getDirectSendsToItemByLocation in interface FollowTheSunModel<ContainerType,ItemType>public java.util.Set<ContainerType> getAvailableContainersFor(ItemType item, Location location)
getAvailableContainersFor in interface FollowTheSunModel<ContainerType,ItemType>public void onItemMoved(ItemType item, ContainerType newContainer)
onItemMoved in interface FollowTheSunModel<ContainerType,ItemType>public void onContainerAdded(ContainerType container, Location location)
onContainerAdded in interface FollowTheSunModel<ContainerType,ItemType>public void onContainerRemoved(ContainerType container)
onContainerRemoved in interface FollowTheSunModel<ContainerType,ItemType>public void onContainerLocationUpdated(ContainerType container, Location location)
onContainerLocationUpdated in interface FollowTheSunModel<ContainerType,ItemType>public void onItemAdded(ItemType item, ContainerType container, boolean immovable)
onItemAdded in interface FollowTheSunModel<ContainerType,ItemType>public void onItemRemoved(ItemType item)
onItemRemoved in interface FollowTheSunModel<ContainerType,ItemType>public void onItemUsageUpdated(ItemType item, java.util.Map<? extends ItemType,java.lang.Double> newValue)
onItemUsageUpdated in interface FollowTheSunModel<ContainerType,ItemType>public java.lang.String itemDistributionToString()
public void dumpItemDistribution()
public void dumpItemDistribution(java.io.PrintStream out)
public static <K,V> java.util.Map<K,V> newHashMap(K k,
                                  V v)
public static double sum(java.util.Collection<? extends java.lang.Number> values)