org.mule.transport.http.multipart
Class LazyList

java.lang.Object
  extended by org.mule.transport.http.multipart.LazyList
All Implemented Interfaces:
Serializable, Cloneable

public class LazyList
extends Object
implements Cloneable, Serializable

Lazy List creation. A List helper class that attempts to avoid unnecessary List creation. If a method needs to create a List to return, but it is expected that this will either be empty or frequently contain a single item, then using LazyList will avoid additional object creations by using Collections.EMPTY_LIST or Collections.singletonList where possible.

LazyList works by passing an opaque representation of the list in and out of all the LazyList methods. This opaque object is either null for an empty list, an Object for a list with a single entry or an ArrayList for a list of items.

Usage

   Object lazylist =null;
   while(loopCondition)
   {
     Object item = getItem();
     if (item.isToBeAdded())
         lazylist = LazyList.add(lazylist,item);
   }
   return LazyList.getList(lazylist);
 
An ArrayList of default size is used as the initial LazyList.

See Also:
List, Serialized Form

Method Summary
static Object add(Object list, int index, Object item)
          Add an item to a LazyList
static Object add(Object list, Object item)
          Add an item to a LazyList
static Object addArray(Object list, Object[] array)
          Add the contents of an array to a LazyList
static Object addCollection(Object list, Collection<?> collection)
          Add the contents of a Collection to a LazyList
static Object[] addToArray(Object[] array, Object item, Class<?> type)
          Add element to an array
static
<E> List<E>
array2List(E[] array)
           
static Object clone(Object list)
           
static boolean contains(Object list, Object item)
           
static Object ensureSize(Object list, int initialSize)
          Ensure the capcity of the underlying list.
static
<E> E
get(Object list, int i)
          Get item from the list
static
<E> List<E>
getList(Object list)
          Get the real List from a LazyList.
static
<E> List<E>
getList(Object list, boolean nullForEmpty)
          Get the real List from a LazyList.
static
<E> Iterator<E>
iterator(Object list)
           
static
<E> ListIterator<E>
listIterator(Object list)
           
static Object remove(Object list, int i)
           
static Object remove(Object list, Object o)
           
static Object removeFromArray(Object[] array, Object item)
           
static int size(Object list)
          The size of a lazy List
static Object toArray(Object list, Class<?> clazz)
          Convert a lazylist to an array
static String toString(Object list)
           
static String[] toStringArray(Object list)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

add

public static Object add(Object list,
                         Object item)
Add an item to a LazyList

Parameters:
list - The list to add to or null if none yet created.
item - The item to add.
Returns:
The lazylist created or added to.

add

public static Object add(Object list,
                         int index,
                         Object item)
Add an item to a LazyList

Parameters:
list - The list to add to or null if none yet created.
index - The index to add the item at.
item - The item to add.
Returns:
The lazylist created or added to.

addCollection

public static Object addCollection(Object list,
                                   Collection<?> collection)
Add the contents of a Collection to a LazyList

Parameters:
list - The list to add to or null if none yet created.
collection - The Collection whose contents should be added.
Returns:
The lazylist created or added to.

addArray

public static Object addArray(Object list,
                              Object[] array)
Add the contents of an array to a LazyList

Parameters:
list - The list to add to or null if none yet created.
array - The array whose contents should be added.
Returns:
The lazylist created or added to.

ensureSize

public static Object ensureSize(Object list,
                                int initialSize)
Ensure the capcity of the underlying list.


remove

public static Object remove(Object list,
                            Object o)

remove

public static Object remove(Object list,
                            int i)

getList

public static <E> List<E> getList(Object list)
Get the real List from a LazyList.

Parameters:
list - A LazyList returned from LazyList.add(Object)
Returns:
The List of added items, which may be an EMPTY_LIST or a SingletonList.

getList

public static <E> List<E> getList(Object list,
                                  boolean nullForEmpty)
Get the real List from a LazyList.

Parameters:
list - A LazyList returned from LazyList.add(Object) or null
nullForEmpty - If true, null is returned instead of an empty list.
Returns:
The List of added items, which may be null, an EMPTY_LIST or a SingletonList.

toStringArray

public static String[] toStringArray(Object list)

toArray

public static Object toArray(Object list,
                             Class<?> clazz)
Convert a lazylist to an array

Parameters:
list - The list to convert
clazz - The class of the array, which may be a primitive type
Returns:
array of the lazylist entries passed in

size

public static int size(Object list)
The size of a lazy List

Parameters:
list - A LazyList returned from LazyList.add(Object) or null
Returns:
the size of the list.

get

public static <E> E get(Object list,
                        int i)
Get item from the list

Parameters:
list - A LazyList returned from LazyList.add(Object) or null
i - int index
Returns:
the item from the list.

contains

public static boolean contains(Object list,
                               Object item)

clone

public static Object clone(Object list)

toString

public static String toString(Object list)

iterator

public static <E> Iterator<E> iterator(Object list)

listIterator

public static <E> ListIterator<E> listIterator(Object list)

array2List

public static <E> List<E> array2List(E[] array)
Parameters:
array - Any array of object
Returns:
A new modifiable list initialised with the elements from array.

addToArray

public static Object[] addToArray(Object[] array,
                                  Object item,
                                  Class<?> type)
Add element to an array

Parameters:
array - The array to add to (or null)
item - The item to add
type - The type of the array (in case of null array)
Returns:
new array with contents of array plus item

removeFromArray

public static Object removeFromArray(Object[] array,
                                     Object item)


Copyright © 2003-2012 MuleSoft, Inc.. All Rights Reserved.