Class IngredientPositionsIndex<T,M>

java.lang.Object
org.cyclops.integrateddynamics.core.network.IngredientPositionsIndex<T,M>
Type Parameters:
T - An instance type.
M - The matching condition parameter.
All Implemented Interfaces:
Iterable<T>, org.cyclops.cyclopscore.ingredient.collection.IIngredientCollection<T,M>, org.cyclops.cyclopscore.ingredient.collection.IIngredientCollectionLike<T,M,T>, IIngredientPositionsIndex<T,M>

public class IngredientPositionsIndex<T,M> extends Object implements IIngredientPositionsIndex<T,M>
An index that maps ingredients to positions that contain that instance. Positions are stored together with their priorities. This makes it possible for instances of this class to guarantee that all returned iterators maintain priority order.
  • Constructor Details

    • IngredientPositionsIndex

      public IngredientPositionsIndex(org.cyclops.commoncapabilities.api.ingredient.IngredientComponent<T,M> component)
  • Method Details

    • getPrototype

      protected T getPrototype(T instance)
    • getInternalPriority

      protected int getInternalPriority(PrioritizedPartPos pos)
    • getNonEmptyPositions

      public Iterator<PartPos> getNonEmptyPositions()
      Specified by:
      getNonEmptyPositions in interface IIngredientPositionsIndex<T,M>
      Returns:
      Get all positions that are not empty.
    • getPositions

      public Iterator<PartPos> getPositions(T instance, M matchFlags)
      Description copied from interface: IIngredientPositionsIndex
      Get all positions that have an instance that contain the given instance.
      Specified by:
      getPositions in interface IIngredientPositionsIndex<T,M>
      Parameters:
      instance - An instance to match.
      matchFlags - Instance match conditions.
      Returns:
      The positions.
    • addPosition

      public void addPosition(T instance, PrioritizedPartPos pos)
      Description copied from interface: IIngredientPositionsIndex
      Indicate that the given position contains the given position.
      Specified by:
      addPosition in interface IIngredientPositionsIndex<T,M>
      Parameters:
      instance - An instance.
      pos - A position.
    • removePosition

      public void removePosition(T instance, PrioritizedPartPos pos)
      Description copied from interface: IIngredientPositionsIndex
      Indicate that the given instance is removed from the given position. This will not necessarily remove the given position, only if the total instance quantity becomes zero.
      Specified by:
      removePosition in interface IIngredientPositionsIndex<T,M>
      Parameters:
      instance - An instance.
      pos - A position.
    • getQuantity

      public long getQuantity(T instance)
      Description copied from interface: IIngredientPositionsIndex
      Get the available quantity for the given instance.
      Specified by:
      getQuantity in interface IIngredientPositionsIndex<T,M>
      Parameters:
      instance - An instance to match.
      Returns:
      The indexed quantity.
    • getComponent

      public org.cyclops.commoncapabilities.api.ingredient.IngredientComponent<T,M> getComponent()
      Specified by:
      getComponent in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollectionLike<T,M,T>
    • size

      public int size()
      Specified by:
      size in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollectionLike<T,M,T>
    • contains

      public boolean contains(T instance)
      Specified by:
      contains in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollection<T,M>
    • contains

      public boolean contains(T instance, M matchCondition)
      Specified by:
      contains in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollection<T,M>
    • count

      public int count(T instance, M matchCondition)
      Specified by:
      count in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollection<T,M>
    • iterator

      public Iterator<T> iterator(T instance, M matchCondition)
      Specified by:
      iterator in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollection<T,M>
      Specified by:
      iterator in interface org.cyclops.cyclopscore.ingredient.collection.IIngredientCollectionLike<T,M,T>
    • iterator

      public Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • removeAll

      public void removeAll(PrioritizedPartPos pos, Iterable<? extends T> instances)
    • addAll

      public void addAll(PrioritizedPartPos pos, Iterable<? extends T> instances)