package advancedsystemsmanager.api.execution; import java.util.Iterator; import java.util.List; import java.util.Map; public interface IBuffer<Type> { public static final String ITEM = "item"; public static final String CRAFT_HIGH = "craftHigh"; public static final String CRAFT_LOW = "craftLow"; public static final String FLUID = "fluid"; public static final String RF = "rf"; public static final String GAS = "gas"; public static final String ASPECT = "aspect"; boolean contains(Type type); //IBufferElement<Type> get(Type type); List<IBufferElement<Type>> get(Type type); int getAccessibleCount(Type type); void remove(Type type, int amount, boolean fair); // void remove(IBufferSubElement<Type> subElement); boolean add(IBufferElement<Type> subElement); Iterator<Map.Entry<Key<Type>, IBufferElement<Type>>> getOrderedIterator(); Iterator<Key<Type>> getKeyIterator(); boolean shouldSplit(); IBuffer split(int amount, int i, boolean fair); // void addToOrderedList(IBufferSubElement<Type> subElement); // // Iterator<IBufferSubElement<Type>> getOrderedIterator(); }