org.geotools.resources
Class Classes

java.lang.Object
  extended by org.geotools.resources.Classes

public final class Classes
extends java.lang.Object

A set of miscellaneous methods working on Class objects.

Since:
2.5
Version:
$Id: Classes.java 30892 2008-07-04 15:17:36Z desruisseaux $
Author:
Martin Desruisseaux (IRD)

Field Summary
static byte BOOLEAN
          Constants to be used in switch statements.
static byte BYTE
          Constants to be used in switch statements.
static byte CHARACTER
          Constants to be used in switch statements.
static byte DOUBLE
          Constants to be used in switch statements.
static byte FLOAT
          Constants to be used in switch statements.
static byte INTEGER
          Constants to be used in switch statements.
static byte LONG
          Constants to be used in switch statements.
static byte OTHER
          Constants to be used in switch statements.
static byte SHORT
          Constants to be used in switch statements.
 
Method Summary
static java.lang.Class<?> boundOfParameterizedAttribute(java.lang.reflect.Field field)
          Returns the upper bounds of the parameterized type of the given attribute.
static java.lang.Class<?> boundOfParameterizedAttribute(java.lang.reflect.Method method)
          If the given method is a getter or a setter for a parameterized attribute, returns the upper bounds of the parameterized type.
static java.lang.Class<?> commonClass(java.util.Collection<?> objects)
          Returns the most specific class which is a common parent of all specified objects.
static int getBitCount(java.lang.Class<?> type)
          Returns the number of bits used by number of the specified type.
static
<T> java.lang.Class<? extends T>
getClass(T object)
          Returns the class of the specified object, or null if object is null.
static byte getEnumConstant(java.lang.Class<?> type)
          Returns one of DOUBLE, FLOAT, LONG, INTEGER, SHORT, BYTE, CHARACTER, BOOLEAN or OTHER constants for the given type.
static java.lang.String getShortClassName(java.lang.Object object)
          Returns a short class name for the specified object.
static java.lang.String getShortName(java.lang.Class<?> classe)
          Returns a short class name for the specified class.
static boolean isFloat(java.lang.Class<?> type)
          Returns true if the given type is a floating point type.
static boolean isInteger(java.lang.Class<?> type)
          Returns true if the given type is an integer type.
static java.lang.Class<?> primitiveToWrapper(java.lang.Class<?> type)
          Changes a primitive class to its wrapper (e.g.
static
<T> boolean
sameInterfaces(java.lang.Class<? extends T> object1, java.lang.Class<? extends T> object2, java.lang.Class<T> base)
          Returns true if the two specified objects implements exactly the same set of interfaces.
static java.lang.Class<?> specializedClass(java.util.Collection<?> objects)
          Returns the most specific class implemented by the objects in the given collection.
static
<T> T
valueOf(java.lang.Class<T> type, java.lang.String value)
          Converts the specified string into a value object.
static java.lang.Class<?> wrapperToPrimitive(java.lang.Class<?> type)
          Changes a wrapper class to its primitive (e.g.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DOUBLE

public static final byte DOUBLE
Constants to be used in switch statements.

See Also:
Constant Field Values

FLOAT

public static final byte FLOAT
Constants to be used in switch statements.

See Also:
Constant Field Values

LONG

public static final byte LONG
Constants to be used in switch statements.

See Also:
Constant Field Values

INTEGER

public static final byte INTEGER
Constants to be used in switch statements.

See Also:
Constant Field Values

SHORT

public static final byte SHORT
Constants to be used in switch statements.

See Also:
Constant Field Values

BYTE

public static final byte BYTE
Constants to be used in switch statements.

See Also:
Constant Field Values

CHARACTER

public static final byte CHARACTER
Constants to be used in switch statements.

See Also:
Constant Field Values

BOOLEAN

public static final byte BOOLEAN
Constants to be used in switch statements.

See Also:
Constant Field Values

OTHER

public static final byte OTHER
Constants to be used in switch statements.

See Also:
Constant Field Values
Method Detail

boundOfParameterizedAttribute

public static java.lang.Class<?> boundOfParameterizedAttribute(java.lang.reflect.Field field)
Returns the upper bounds of the parameterized type of the given attribute. If the attribute does not have a parameterized type, returns null.

This method is typically used for fetching the type of elements in a collection. We do not provide a method working from a Class instance because of the way parameterized types are implemented in Java (by erasure).

Examples: When invoking this method for a field of the type below:

Parameters:
field - The field for which to obtain the parameterized type.
Returns:
The upper bound of parameterized type, or null if the given field is not of a parameterized type.

boundOfParameterizedAttribute

public static java.lang.Class<?> boundOfParameterizedAttribute(java.lang.reflect.Method method)
If the given method is a getter or a setter for a parameterized attribute, returns the upper bounds of the parameterized type. Otherwise returns null. This method provides the same semantic than boundOfParameterizedAttribute(Field), but works on a getter or setter method rather then the field. See the javadoc of above methods for more details.

This method is typically used for fetching the type of elements in a collection. We do not provide a method working from a Class instance because of the way parameterized types are implemented in Java (by erasure).

Parameters:
method - The getter or setter method for which to obtain the parameterized type.
Returns:
The upper bound of parameterized type, or null if the given method do not opperate on an object of a parameterized type.

getClass

public static <T> java.lang.Class<? extends T> getClass(T object)
Returns the class of the specified object, or null if object is null. This method is also useful for fetching the class of an object known only by its bound type. As of Java 6, the usual pattern:
 Number n = 0;
 Class c = n.getClass();
 
doesn't seem to work if Number is replaced by a parametirez type T.

Type Parameters:
T - The type of the given object.
Parameters:
object - The object for which to get the class, or null.
Returns:
The class of the given object, or null if the given object was null.

specializedClass

public static java.lang.Class<?> specializedClass(java.util.Collection<?> objects)
Returns the most specific class implemented by the objects in the given collection. If no class are assignable to all others, then this method returns the most specific common super class.

Parameters:
objects - A collection of objects. May contains duplicated values and null values.
Returns:
The most specific class.

commonClass

public static java.lang.Class<?> commonClass(java.util.Collection<?> objects)
Returns the most specific class which is a common parent of all specified objects.

Parameters:
objects - A collection of objects. May contains duplicated values and null values.
Returns:
The most specific class common to all supplied objects.

sameInterfaces

public static <T> boolean sameInterfaces(java.lang.Class<? extends T> object1,
                                         java.lang.Class<? extends T> object2,
                                         java.lang.Class<T> base)
Returns true if the two specified objects implements exactly the same set of interfaces. Only interfaces assignable to base are compared. Declaration order doesn't matter. For example in ISO 19111, different interfaces exist for different coordinate system geometries (CartesianCS, PolarCS, etc.). We can check if two CS implementations has the same geometry with the following code:
if (sameInterfaces(cs1, cs2, CoordinateSystem.class))

Type Parameters:
T - A common parent for both objects.
Parameters:
object1 - The first object to check for interfaces.
object2 - The second object to check for interfaces.
base - The parent of all interfaces to check.
Returns:
true if both objects implement the same set of interfaces, considering only sub-interfaces of base.

isFloat

public static boolean isFloat(java.lang.Class<?> type)
Returns true if the given type is a floating point type.

Parameters:
type - The type to test (may be null).
Returns:
true if type is the primitive or wrapper class of Float or Double.

isInteger

public static boolean isInteger(java.lang.Class<?> type)
Returns true if the given type is an integer type.

Parameters:
type - The type to test (may be null).
Returns:
true if type is the primitive of wrapper class of Long, Integer, Short or Byte.

getBitCount

public static int getBitCount(java.lang.Class<?> type)
Returns the number of bits used by number of the specified type.

Parameters:
type - The type (may be null).
Returns:
The number of bits, or 0 if unknow.

primitiveToWrapper

public static java.lang.Class<?> primitiveToWrapper(java.lang.Class<?> type)
Changes a primitive class to its wrapper (e.g. int to Integer). If the specified class is not a primitive type, then it is returned unchanged.

Parameters:
type - The primitive type (may be null).
Returns:
The type as a wrapper.

wrapperToPrimitive

public static java.lang.Class<?> wrapperToPrimitive(java.lang.Class<?> type)
Changes a wrapper class to its primitive (e.g. Integer to int). If the specified class is not a wrapper type, then it is returned unchanged.

Parameters:
type - The wrapper type (may be null).
Returns:
The type as a primitive.

getEnumConstant

public static byte getEnumConstant(java.lang.Class<?> type)
Returns one of DOUBLE, FLOAT, LONG, INTEGER, SHORT, BYTE, CHARACTER, BOOLEAN or OTHER constants for the given type. This is a commodity for usage in switch statememnts.

Parameters:
type - A type (usually either a primitive type or its wrapper).
Returns:
The constant for the given type, or OTHER if unknow.

valueOf

public static <T> T valueOf(java.lang.Class<T> type,
                            java.lang.String value)
                 throws java.lang.IllegalArgumentException,
                        java.lang.NumberFormatException
Converts the specified string into a value object. The value object can be an instance of Double, Float, Long, Integer, Short, Byte, Boolean, Character or String according the specified type. This method is intentionnaly restricted to primitive types, with the addition of String which can be though as an identity operation. Other types like File are not the purpose of this method.

Type Parameters:
T - The requested type.
Parameters:
type - The requested type.
value - the value to parse.
Returns:
The value object, or null if value was null.
Throws:
java.lang.IllegalArgumentException - if type is not a recognized type.
java.lang.NumberFormatException - if type is a subclass of Number and the string value is not parseable as a number of the specified type.

getShortName

public static java.lang.String getShortName(java.lang.Class<?> classe)
Returns a short class name for the specified class. This method will omit the package name. For example, it will return "String" instead of "java.lang.String" for a String object. It will also name array according Java language usage, for example "double[]" instead of "[D".

Parameters:
classe - The object class (may be null).
Returns:
A short class name for the specified object.

getShortClassName

public static java.lang.String getShortClassName(java.lang.Object object)
Returns a short class name for the specified object. This method will omit the package name. For example, it will return "String" instead of "java.lang.String" for a String object.

Parameters:
object - The object (may be null).
Returns:
A short class name for the specified object.


Copyright © 1996-2010 Geotools. All Rights Reserved.