Class ArrayWrapper

java.lang.Object
org.rexxla.bsf.engines.rexx.ArrayWrapper

public class ArrayWrapper extends Object
This class serves as a wrapper for Java arrays. Its methods allow to fully interact with arrays of any type from Rexx (and other non-Java-based languages). Names of methods are called after their Object Rexx counterparts, if any.
------------------------ 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.6, 2021-02-05
Author:
Rony G. Flatscher (WU-Wien/Wirtschaftsuniversität Wien, http://www.wu-wien.ac.at/english)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    int
    Stores the total number of dimensions.
    int
    Stores the total size (maximum number of entries) of the entire array.
    int[]
    Array of int which stores the size (maximum number of entries) of the appropriate dimension.
    static String
    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
    Description
    ArrayWrapper(Object objArray)
    Creates and returns an instance of this class, allowing easier access to Java arrays.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    dimension(int i)
    Returns the size of the given dimension.
    get(int[] idxArr)
    Get a value (item, element) from the array at the given position.
    makearray(boolean bSupplier, boolean bRexxStyle)
    Modelled after Object Rexx MAKEARRAY method of the array class.
    void
    put(Object valueObj, int[] idxArr)
    Put a value (item, element) into the array object at the given position.
    Creates a supplier object for allowing to enumerate the array together with the appropriate indices (Java style: index starts with 0 and is enclosed in square brackets).
    supplier(boolean bRexxStyle)
    Creates a supplier object for allowing to enumerate the array together with the appropriate indices.
    supplier(RexxProxy clzSupplier)
    Creates a Rexx supplier object (from the supplied ooRexx .Supplier class object) for allowing to enumerate the array together with the appropriate indices.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • version

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

      public int dimensions
      Stores the total number of dimensions.
    • sizeOfDimension

      public int[] sizeOfDimension
      Array of int which stores the size (maximum number of entries) of the appropriate dimension.
    • items

      public int items
      Stores the total size (maximum number of entries) of the entire array.
    • componentType

      public Class componentType
  • Constructor Details

  • Method Details

    • dimension

      public int dimension(int i)
      Returns the size of the given dimension.
      Parameters:
      i - indicates the dimension of interest (Java index, i.e. first dimension to be indicated/indexed with the value 0).
      Returns:
      the size of the given dimension.
    • get

      public Object get(int[] idxArr)
      Get a value (item, element) from the array at the given position.
      Parameters:
      idxArr - a one-dimensional array of ints determining the location in the array.
      Returns:
      the Object stored at the specified location.
    • put

      public void put(Object valueObj, int[] idxArr)
      Put a value (item, element) into the array object at the given position.
      Parameters:
      idxArr - a one-dimensional array of ints determining the location in the array.
      valueObj - the Object to store; in the case of primitives the appropriate conversions takes place, curtesy of Array.
    • supplier

      public Supplier supplier()
      Creates a supplier object for allowing to enumerate the array together with the appropriate indices (Java style: index starts with 0 and is enclosed in square brackets).
      Returns:
      an instance of class Supplier, allowing for enumerating the contents of the array.
    • supplier

      public Supplier supplier(boolean bRexxStyle)
      Creates a supplier object for allowing to enumerate the array together with the appropriate indices.
      Parameters:
      bRexxStyle - determines whether the index value is [Object] Rexx style (index starts with 1, multiple indices are separated by a comma) or Java style (index starts with 0, indices are enclosed in square brackets)
      Returns:
      an instance of class Supplier, allowing for enumerating the contents of the array.
    • supplier

      public RexxProxy supplier(RexxProxy clzSupplier) throws org.apache.bsf.BSFException
      Creates a Rexx supplier object (from the supplied ooRexx .Supplier class object) for allowing to enumerate the array together with the appropriate indices.
      Parameters:
      clzSupplier - the ooRexx "Supplier" class object to be used for creating a genuine ooRexx supplier (to allow ooRexx 5.0 new "DO WITH" to work)
      Returns:
      the ooRexx supplier object (a Java RexxProxy)
      Throws:
      org.apache.bsf.BSFException
    • makearray

      public Object[] makearray(boolean bSupplier, boolean bRexxStyle)
      Modelled after Object Rexx MAKEARRAY method of the array class. This method is executed synchronized.
      Parameters:
      bSupplier - boolean value to indicate whether a supplier array (containing the appropriate indices as Strings) is to be prepared and returned (if set to true).
      bRexxStyle - boolean value to indicate whether using Rexx (index starts at: 1) or Java (index starts at: 0) style for creating the indices for a supplier.
      Returns:
      a two-dimensional array of Objects, where the first element contains the single dimensioned array and the second element the optional supplier array