Class Lister<T>

java.lang.Object
org.jvnet.tiger_types.Lister<T>

public abstract class Lister<T> extends Object
Abstracts away the process of creating a collection (array, List, etc) of items.
  • Field Details

    • itemType

      public final Class itemType
      Type of the individual item
    • itemGenericType

      public final Type itemGenericType
    • r

      protected final Collection r
    • CONCRETE_TYPES

      private static final Class[] CONCRETE_TYPES
  • Constructor Details

    • Lister

      protected Lister(Class itemType, Type itemGenericType)
    • Lister

      protected Lister(Class itemType, Type itemGenericType, Collection r)
  • Method Details

    • add

      public void add(Object o)
    • toCollection

      public abstract T toCollection()
    • create

      public static Lister create(Type t)
      Creates a Lister instance that produces the given type.
    • create

      public static <T> Lister<T> create(Class<T> c, Type t)
      Creates a Lister instance that produces the given type.
      Parameters:
      c - The erasure version of 't'. This is taken as a parameter as a performance optimizaiton.
      Returns:
      null if the given type doesn't look like a collection.
      Throws:
      IllegalArgumentException - if the given type does look like a collection yet this implementation is not capable of how to handle it.
    • toError

      private static IllegalAccessError toError(IllegalAccessException e)
    • toError

      private static InstantiationError toError(InstantiationException e)