Package edu.wisc.game.engine

## Class RuleSet.BucketList

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList<E>
    - - java.util.Vector<Expression.ArithmeticExpression>
      - - edu.wisc.game.engine.RuleSet.BucketList

- All Implemented Interfaces:
    `Serializable`, `Cloneable`, `Iterable<Expression.ArithmeticExpression>`, `Collection<Expression.ArithmeticExpression>`, `List<Expression.ArithmeticExpression>`, `RandomAccess`
  Enclosing class:
    RuleSet

      public static class RuleSet.BucketList
      extends Vector<Expression.ArithmeticExpression>

  A BucketList represents the information about the destination buckets given in the "buckets" field of an atom. It is a list of arithmetic expressions, each of which can be a numeric constant or a more complicated expressions making use of the "bucket arithmetic" and "bucket variables".
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class java.util.Vector

      `capacityIncrement, elementCount, elementData`

    - ### Fields inherited from class java.util.AbstractList

      `modCount`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `destinationAllowed​(Expression.VarMap2 varMap, int bucketNo)` | Used in GS5
    `BitSet` | `destinations​(Expression.VarMap varMap)` | To which destinations can a piece be taken? (Used in GS1 thru 4)
    `HashSet<String>` | `listAllVars()` | The list of variables mentioned in this BucketSelector
    `String` | `toSrc()` |
    `String` | `toString()` |

    - ### Methods inherited from class java.util.Vector

      `add, add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, forEach, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, iterator, lastElement, lastIndexOf, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeAllElements, removeElement, removeElementAt, removeIf, removeRange, replaceAll, retainAll, set, setElementAt, setSize, size, sort, spliterator, subList, toArray, toArray, trimToSize`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, stream, toArray`

- - ### Method Detail

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Vector<Expression.ArithmeticExpression>`

    - #### toSrc

          public String toSrc()

    - #### destinations

          public BitSet destinations​(Expression.VarMap varMap)

      To which destinations can a piece be taken? (Used in GS1 thru 4)
      Parameters:
        `varMap` - Information about p, ps, pc, Nearby etc for the piece under consideration

    - #### destinationAllowed

          public boolean destinationAllowed​(Expression.VarMap2 varMap,
                                            int bucketNo)

      Used in GS5

    - #### listAllVars

          public HashSet<String> listAllVars()

      The list of variables mentioned in this BucketSelector