org.rexxla.bsf.engines.rexx

## Class Supplier

- java.lang.Object
- - org.rexxla.bsf.engines.rexx.Supplier

- All Implemented Interfaces:
    java.util.Enumeration

      public class Supplier
      extends java.lang.Object
      implements java.util.Enumeration

  Class modelled after the ooRexx class "Supplier". Needs the `ArrayWrapper` class. Allows iterating over an array (regardless of its dimension). In the case an entry of the array is `null`, that entry is not reflected in the supplier object.

      ------------------------ Apache Version 2.0 license -------------------------
          Copyright (C) 2001-2021 Rony G. Flatscher

          Licensed under the Apache License, Version 2.0 (the "License");
          you may not use this file except in compliance with the License.
          You may obtain a copy of the License at

              http://www.apache.org/licenses/LICENSE-2.0

          Unless required by applicable law or agreed to in writing, software
          distributed under the License is distributed on an "AS IS" BASIS,
          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
          See the License for the specific language governing permissions and
          limitations under the License.
       -----------------------------------------------------------------------------

  Version:
    1.06, 20210209
  Author:
    Rony G. Flatscher (WU-Wien/Wirtschaftsuniversität Wien, http://www.wu-wien.ac.at/english)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `version` Version string indicating version of this class (majorVersion*100+minorVersion concatenated with a dot and the sorted date of last change.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Supplier(java.lang.Object arrObject)` Creates an instance of the class using the `ArrayWrapper` class.
    `Supplier(java.lang.Object[] values, java.lang.Object[] indices)` Creates an instance of the class.
    `Supplier(java.lang.Object arrObject, boolean bRexxStyle)` Creates an instance of the class using the `ArrayWrapper` class.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object[]` | `allIndexes()` Returns single dimensioned (Java) array object containing the remaining indexes.
    `java.lang.Object[]` | `allItems()` Returns single dimensioned (Java) array object containing the remaining items.
    `boolean` | `available()` Tests whether an index/value pair is available.
    `boolean` | `hasMoreElements()` Implements the interface `java.util.Enumeration.hasMoreElements()`.
    `java.lang.Object` | `index()` Returns the index part of the supplier object.
    `java.lang.Object` | `item()` Returns the item (value) part of the supplier object.
    `void` | `next()` Move to the next item/value pair, if any.
    `java.lang.Object` | `nextElement()` Implements the interface `java.util.Enumeration.nextElement()`.
    `Supplier` | `supplier()` Returns the Supplier object itself.

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

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

- - ### Field Detail

    - #### version

          public static java.lang.String version

      Version string indicating version of this class (majorVersion*100+minorVersion concatenated with a dot and the sorted date of last change.

  - ### Constructor Detail

    - #### Supplier

          public Supplier(java.lang.Object arrObject,
                          boolean bRexxStyle)
                   throws java.lang.ClassNotFoundException,
                          org.apache.bsf.BSFException

      Creates an instance of the class using the `ArrayWrapper` class.
      Parameters:
        `arrObject` - an array (of any dimension)
        `bRexxStyle` - `true` format index-part in Object Rexx style (indexing starts with `1` and multiple indices are delimited with commas), `false` format index-part in Java style (indexing starts with `0` and multiple indices are delimited by enclosing each index in square brackets)
      Throws:
        `java.lang.ClassNotFoundException`
        `org.apache.bsf.BSFException`

    - #### Supplier

          public Supplier(java.lang.Object arrObject)
                   throws java.lang.ClassNotFoundException,
                          org.apache.bsf.BSFException

      Creates an instance of the class using the `ArrayWrapper` class. Uses the Java style of indexing for the index part of the supplier object.
      Parameters:
        `arrObject` - an array (of any dimension)
      Throws:
        `java.lang.ClassNotFoundException`
        `org.apache.bsf.BSFException`

    - #### Supplier

          public Supplier(java.lang.Object[] values,
                          java.lang.Object[] indices)

      Creates an instance of the class.
      Parameters:
        `values` - a single-dimensioned array containing the values (items)
        `indices` - a single-dimensioned array containing the indices of `v`

  - ### Method Detail

    - #### allIndexes

          public java.lang.Object[] allIndexes()

      Returns single dimensioned (Java) array object containing the remaining indexes. Like in ooRexx 3.2.0 the array will only contain all elements starting from the current pointed to element on (i.e., index/item pairs already processed will not show up in the returned array object). The supplier object itself is considered to be exhausted from this time on, such that `available()` will return

          false

      .
      Returns:
        single dimensioned array object containing the remaining indexes.

    - #### allItems

          public java.lang.Object[] allItems()

      Returns single dimensioned (Java) array object containing the remaining items. Like in ooRexx 3.2.0 the array will only contain all elements starting from the current pointed to element on (i.e., index/item pairs already processed will not show up in the returned array object). The supplier object itself is considered to be exhausted from this time on, such that `available()` will return

          false

      .
      Returns:
        single dimensioned array object containing the remaining items.

    - #### available

          public boolean available()

      Tests whether an index/value pair is available.
      Returns:
        `true`, if an index/value pair is available, `false` else.

    - #### next

          public void next()

      Move to the next item/value pair, if any.

    - #### item

          public java.lang.Object item()

      Returns the item (value) part of the supplier object.
      Returns:
        the item (value) part of the supplier object

    - #### index

          public java.lang.Object index()

      Returns the index part of the supplier object.
      Returns:
        the index part of the supplier object

    - #### supplier

          public Supplier supplier()

      Returns the Supplier object itself.
      Returns:
        this Supplier object

    - #### hasMoreElements

          public boolean hasMoreElements()

      Implements the interface `java.util.Enumeration.hasMoreElements()`.
      Specified by:
        `hasMoreElements` in interface `java.util.Enumeration`

    - #### nextElement

          public java.lang.Object nextElement()
                                       throws java.util.NoSuchElementException

      Implements the interface `java.util.Enumeration.nextElement()`.
      Specified by:
        `nextElement` in interface `java.util.Enumeration`
      Throws:
        `java.util.NoSuchElementException` - raised, if using the Enumerator interface and moving beyond the end of the supplier object.