edu.claflin.finder.algo

## Class ArgumentsBundle

- java.lang.Object
- - edu.claflin.finder.algo.ArgumentsBundle

-     public class ArgumentsBundle
      extends java.lang.Object

  Used to supply arguments to Algorithms in a generalized manner. The caller is required to put arguments on the bundle prior to passing it to the Algorithm's constructor. The algorithm, then, can interpret the arguments it wants to and ignore others. This generalizes the constructor of the abstract Algorithm object so that algorithms that take different arguments may be created without complicating the constructors of others. Specifically, the bundle supports the following kinds of arguments: - Enums - Integers - Floats - Objects - a special Condition object list
  Version:
    3.0 February 2, 2016
  Author:
    Charles Allen Schultz II

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ArgumentsBundle.COMMON_ARGS` An enumeration containing common arguments used by the program.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.util.HashMap<java.lang.String,java.lang.Boolean>` | `booleanList` The Mapping of String keywords to Notable Boolean values.
    `private java.util.ArrayList<Condition>` | `conditionsList` The List of conditions to apply to the Algorithm.
    `private java.util.HashMap<java.lang.String,java.lang.Double>` | `doubleList` The Mapping of String keywords to Notable Double values.
    `private java.util.HashMap<java.lang.String,java.lang.Enum>` | `enumList` The Mapping of String keywords to Notable Enum values.
    `private java.util.HashMap<java.lang.String,java.lang.Integer>` | `integerList` The Mapping of String keywords to Notable Integer values.
    `private java.util.HashMap<java.lang.String,java.lang.Object>` | `objectsList` The Mapping of String keywords to Notable objects.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ArgumentsBundle()` Constructs the ArgumentsBundle.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCondition(Condition condition)` Adds a Condition to the conditionsList.
    `java.lang.Boolean` | `getBoolean(java.lang.String key)` Gets a boolean from the booleanList.
    `java.util.List<Condition>` | `getConditionsList()` Gets a copy of the conditionsList that will not structurally modify the one owned by the bundle.
    `java.lang.Double` | `getDouble(java.lang.String key)` Gets a double from the doubleList.
    `java.lang.Enum` | `getEnum(java.lang.String key)` Gets an enum from the enumList.
    `java.lang.Integer` | `getInteger(java.lang.String key)` Gets an integer from the integerList.
    `java.lang.Object` | `getObject(java.lang.String key)` Gets an object from the enumList.
    `void` | `putBoolean(java.lang.String key, java.lang.Boolean val)` Puts a boolean in the booleanList.
    `void` | `putDouble(java.lang.String key, java.lang.Double val)` Puts a double in the doubleList.
    `void` | `putEnum(java.lang.String key, java.lang.Enum val)` Puts an enum in the enumList.
    `void` | `putInteger(java.lang.String key, java.lang.Integer val)` Puts an integer in the integerList.
    `void` | `putObject(java.lang.String key, java.lang.Object val)` Puts an object in the enumList.
    `void` | `removeBoolean(java.lang.String key)` Removes a boolean from the booleanList.
    `void` | `removeCondition(Condition condition)` Removes a Condition from the conditionsList.
    `void` | `removeDouble(java.lang.String key)` Removes a double from the doubleList.
    `void` | `removeEnum(java.lang.String key)` Removes an enum from the enumList.
    `void` | `removeInteger(java.lang.String key)` Removes an integer from the integerList.
    `void` | `removeObject(java.lang.String key)` Removes an object from the enumList.
    `java.lang.String` | `toString()`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### conditionsList

          private final java.util.ArrayList<Condition> conditionsList

      The List of conditions to apply to the Algorithm.

    - #### integerList

          private final java.util.HashMap<java.lang.String,java.lang.Integer> integerList

      The Mapping of String keywords to Notable Integer values.

    - #### doubleList

          private final java.util.HashMap<java.lang.String,java.lang.Double> doubleList

      The Mapping of String keywords to Notable Double values.

    - #### booleanList

          private final java.util.HashMap<java.lang.String,java.lang.Boolean> booleanList

      The Mapping of String keywords to Notable Boolean values.

    - #### enumList

          private final java.util.HashMap<java.lang.String,java.lang.Enum> enumList

      The Mapping of String keywords to Notable Enum values.

    - #### objectsList

          private final java.util.HashMap<java.lang.String,java.lang.Object> objectsList

      The Mapping of String keywords to Notable objects.

  - ### Constructor Detail

    - #### ArgumentsBundle

          public ArgumentsBundle()

      Constructs the ArgumentsBundle.

  - ### Method Detail

    - #### addCondition

          public void addCondition(Condition condition)

      Adds a Condition to the conditionsList.
      Parameters:
        `condition` - the Condition object to add.

    - #### removeCondition

          public void removeCondition(Condition condition)

      Removes a Condition from the conditionsList.
      Parameters:
        `condition` - the Condition object to remove.

    - #### getConditionsList

          public java.util.List<Condition> getConditionsList()

      Gets a copy of the conditionsList that will not structurally modify the one owned by the bundle.
      Returns:
        a List of Conditions held in this ArgumentsBundle.

    - #### putInteger

          public void putInteger(java.lang.String key,
                                 java.lang.Integer val)

      Puts an integer in the integerList.
      Parameters:
        `key` - the String keyword which maps to the integer.
        `val` - the Integer to put.

    - #### removeInteger

          public void removeInteger(java.lang.String key)

      Removes an integer from the integerList.
      Parameters:
        `key` - the String keyword which maps to the integer.

    - #### getInteger

          public java.lang.Integer getInteger(java.lang.String key)

      Gets an integer from the integerList.
      Parameters:
        `key` - the String keyword which maps to the integer.
      Returns:
        the Integer in the list or null if not present.

    - #### putDouble

          public void putDouble(java.lang.String key,
                                java.lang.Double val)

      Puts a double in the doubleList.
      Parameters:
        `key` - the String keyword which maps to the double.
        `val` - the Double to put.

    - #### removeDouble

          public void removeDouble(java.lang.String key)

      Removes a double from the doubleList.
      Parameters:
        `key` - the String keyword which maps to the double.

    - #### getDouble

          public java.lang.Double getDouble(java.lang.String key)

      Gets a double from the doubleList.
      Parameters:
        `key` - the String keyword which maps to the double.
      Returns:
        the Double in the list or null if not present.

    - #### putBoolean

          public void putBoolean(java.lang.String key,
                                 java.lang.Boolean val)

      Puts a boolean in the booleanList.
      Parameters:
        `key` - the String keyword which maps to the boolean.
        `val` - the Boolean to put.

    - #### removeBoolean

          public void removeBoolean(java.lang.String key)

      Removes a boolean from the booleanList.
      Parameters:
        `key` - the String keyword which maps to the boolean.

    - #### getBoolean

          public java.lang.Boolean getBoolean(java.lang.String key)

      Gets a boolean from the booleanList.
      Parameters:
        `key` - the String keyword which maps to the boolean.
      Returns:
        the Boolean in the list or null if not present.

    - #### putEnum

          public void putEnum(java.lang.String key,
                              java.lang.Enum val)

      Puts an enum in the enumList.
      Parameters:
        `key` - the String keyword which maps to the enum.
        `val` - the Enum to put.

    - #### removeEnum

          public void removeEnum(java.lang.String key)

      Removes an enum from the enumList.
      Parameters:
        `key` - the String keyword which maps to the enum.

    - #### getEnum

          public java.lang.Enum getEnum(java.lang.String key)

      Gets an enum from the enumList.
      Parameters:
        `key` - the String keyword which maps to the enum.
      Returns:
        the Enum in the list or null if not present.

    - #### putObject

          public void putObject(java.lang.String key,
                                java.lang.Object val)

      Puts an object in the enumList.
      Parameters:
        `key` - the String keyword which maps to the object.
        `val` - the Object to put.

    - #### removeObject

          public void removeObject(java.lang.String key)

      Removes an object from the enumList.
      Parameters:
        `key` - the String keyword which maps to the object.

    - #### getObject

          public java.lang.Object getObject(java.lang.String key)

      Gets an object from the enumList.
      Parameters:
        `key` - the String keyword which maps to the object.
      Returns:
        the Object in the list or null if not present.

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`