Class ArraySuffix

  • Direct Known Subclasses:
    PropertySuffix

    public class ArraySuffix
    extends ValueSuffix

    Represents an operator that obtains a Map entry, an indexed value, a property value, or an indexed property value of an object. The following are the rules for evaluating this operator:

     Evaluating a[b] (assuming a.b == a["b"])
       a is null
         return null
       b is null
         return null
       a is Map
         !a.containsKey (b)
           return null
         a.get(b) == null
           return null
         otherwise
           return a.get(b)
       a is List or array
         coerce b to int (using coercion rules)
         coercion couldn't be performed
           error
         a.get(b) or Array.get(a, b) throws ArrayIndexOutOfBoundsException or IndexOutOfBoundsException
           return null
         a.get(b) or Array.get(a, b) throws other exception
           error
         return a.get(b) or Array.get(a, b)
    
       coerce b to String
       b is a readable property of a
         getter throws an exception
           error
         otherwise
           return result of getter call
    
       otherwise
         error
     
    Author:
    Nathan Abramson - Art Technology Group, Shawn Bayern