org.apache.felix.gogo.commands.converter
Class ReifiedType
java.lang.Object
org.apache.felix.gogo.commands.converter.ReifiedType
- Direct Known Subclasses:
- GenericType
public class ReifiedType
- extends java.lang.Object
Provides access to a concrete type and its optional generic type arguments.
Java 5 and later support generic types. These types consist of a raw class
with type arguments. This class models such a Type
class but
ensures that the type is reified. Reification means that the Type
graph associated with a Java 5 Type
instance is traversed
until the type becomes a concrete class. In Java 1.4 a class has no
arguments. This concrete class implements the Reified Type for Java 1.4.
In Java 1.4, this class works with non-generic types. In that cases, a
Reified Type provides access to the class and has zero type arguments, though
a subclass that provide type arguments should be respected. Blueprint
extender implementations can subclass this class and provide access to the
generics type graph if used in a conversion. Such a subclass must
reify the different Java 5 Type
instances into the
reified form. That is, a form where the raw Class is available with its optional type arguments as Reified Types.
Constructor Summary |
ReifiedType(java.lang.Class clazz)
Create a Reified Type for a raw Java class without any generic arguments. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ReifiedType
public ReifiedType(java.lang.Class clazz)
- Create a Reified Type for a raw Java class without any generic arguments.
Subclasses can provide the optional generic argument information. Without
subclassing, this instance has no type arguments.
- Parameters:
clazz
- The raw class of the Reified Type.
getRawClass
public java.lang.Class getRawClass()
- Access to the raw class.
The raw class represents the concrete class that is associated with a
type declaration. This class could have been deduced from the generics
type graph of the declaration. For example, in the following example:
Map<String, Object> map;
The raw class is the Map class.
- Returns:
- the collapsed raw class that represents this type.
getActualTypeArgument
public ReifiedType getActualTypeArgument(int i)
- Access to a type argument.
The type argument refers to a argument in a generic type declaration
given by index
i
. This method returns a Reified Type that
has Object as class when no generic type information is available. Any
object is assignable to Object and therefore no conversion is then
necessary, this is compatible with older Javas than 5. For this reason,
the implementation in this class always returns the
Object class, regardless of the given index.
This method should be overridden by a subclass that provides access to
the generic information.
For example, in the following example:
Map<String, Object> map;
The type argument 0 is String
, and type argument 1 is
Object
.
- Parameters:
i
- The index of the type argument
- Returns:
ReifiedType(Object.class), subclasses must override this and return the generic argument at index i
size
public int size()
- Return the number of type arguments.
This method should be overridden by a subclass to support Java 5 types.
- Returns:
- 0, subclasses must override this and return the number of generic
arguments
Copyright © 2007-2011 Apache Software Foundation. All Rights Reserved.