• Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Duplicate
    • Affects Version/s: 1.6
    • Fix Version/s: 1.6, 2.x
    • Component/s: Engine
    • Labels:
    • Environment:
      Operating System: All
      Platform: All


      ok, the motive of this feature request is that we shouldn't have to distinguish
      between an $array and a $list when writing templates. this is already handled
      to a degree in the #foreach() directive which transparently handles both arrays
      and Lists (among other things), and it seems logically consistent with the way
      VTL already hides the difference between primitives and their wrappers (int vs.

      so, in this same spirit, i propose that we should enable template authors to
      access items by index, determine the size of, and manipulate (to a point) Lists
      and arrays identically. here's an example that demonstrates how i think this
      should work:

      Access Item at Index 2:
      $list.get(2) ##works already
      $array.get(2) ##doesn't work right now

      Determine size:
      $list.size() ##works already
      $array.size() ##wish this would work

      you get the idea, right? basically, i would like to have all operations that
      make sense for an array supported (which i believe means most List methods
      except the add(), remove(), and clear() ones).

      IMHO, this would simplify things for users noticeably and eliminate the need for
      such things as an ArrayTool in the VelocityTools library.

      at this point, i'm not sure what the best approach for implementing this is. it
      may simply be the automatic, transparent wrapping of arrays inserted into the
      context with some sort of ArrayList wrapper class. or i suppose it could
      involve some crazy Uberspect trickery.

      now all we need is someone with the time to whip up a patch...

        Issue Links



            • Assignee:
              Nathan Bubna
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: