com.thoughtworks.xstream.converters.reflection
Class PureJavaReflectionProvider
java.lang.Object
com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider
- All Implemented Interfaces:
- ReflectionProvider
- Direct Known Subclasses:
- Sun14ReflectionProvider
public class PureJavaReflectionProvider
- extends java.lang.Object
- implements ReflectionProvider
Pure Java ObjectFactory that instantiates objects using standard Java reflection, however the types of objects
that can be constructed are limited.
Can newInstance: classes with public visibility, outer classes, static inner classes, classes with default constructors
and any class that implements java.io.Serializable.
Cannot newInstance: classes without public visibility, non-static inner classes, classes without default constructors.
Note that any code in the constructor of a class will be executed when the ObjectFactory instantiates the object.
- Author:
- Joe Walnes
Method Summary |
boolean |
fieldDefinedInClass(java.lang.String fieldName,
java.lang.Class type)
|
protected boolean |
fieldModifiersSupported(java.lang.reflect.Field field)
|
java.lang.reflect.Field |
getField(java.lang.Class definedIn,
java.lang.String fieldName)
Returns a field defined in some class. |
java.lang.reflect.Field |
getFieldOrNull(java.lang.Class definedIn,
java.lang.String fieldName)
Works like ReflectionProvider.getField(Class, String) but returns null
instead of throwing ObjectAccessException . |
java.lang.Class |
getFieldType(java.lang.Object object,
java.lang.String fieldName,
java.lang.Class definedIn)
|
java.lang.Object |
newInstance(java.lang.Class type)
Creates a new instance of the specified type. |
protected java.lang.Object |
readResolve()
|
void |
setFieldDictionary(FieldDictionary dictionary)
|
protected void |
validateFieldAccess(java.lang.reflect.Field field)
|
void |
visitSerializableFields(java.lang.Object object,
ReflectionProvider.Visitor visitor)
|
void |
writeField(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object value,
java.lang.Class definedIn)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
fieldDictionary
protected FieldDictionary fieldDictionary
PureJavaReflectionProvider
public PureJavaReflectionProvider()
PureJavaReflectionProvider
public PureJavaReflectionProvider(FieldDictionary fieldDictionary)
newInstance
public java.lang.Object newInstance(java.lang.Class type)
- Description copied from interface:
ReflectionProvider
- Creates a new instance of the specified type. It is in the responsibility
of the implementation how such an instance is created.
- Specified by:
newInstance
in interface ReflectionProvider
- Parameters:
type
- the type to instantiate
- Returns:
- a new instance of this type
visitSerializableFields
public void visitSerializableFields(java.lang.Object object,
ReflectionProvider.Visitor visitor)
- Specified by:
visitSerializableFields
in interface ReflectionProvider
writeField
public void writeField(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object value,
java.lang.Class definedIn)
- Specified by:
writeField
in interface ReflectionProvider
getFieldType
public java.lang.Class getFieldType(java.lang.Object object,
java.lang.String fieldName,
java.lang.Class definedIn)
- Specified by:
getFieldType
in interface ReflectionProvider
fieldDefinedInClass
public boolean fieldDefinedInClass(java.lang.String fieldName,
java.lang.Class type)
- Specified by:
fieldDefinedInClass
in interface ReflectionProvider
fieldModifiersSupported
protected boolean fieldModifiersSupported(java.lang.reflect.Field field)
validateFieldAccess
protected void validateFieldAccess(java.lang.reflect.Field field)
getField
public java.lang.reflect.Field getField(java.lang.Class definedIn,
java.lang.String fieldName)
- Description copied from interface:
ReflectionProvider
- Returns a field defined in some class.
- Specified by:
getField
in interface ReflectionProvider
- Parameters:
definedIn
- class where the field was definedfieldName
- field name
- Returns:
- the field itself
getFieldOrNull
public java.lang.reflect.Field getFieldOrNull(java.lang.Class definedIn,
java.lang.String fieldName)
- Description copied from interface:
ReflectionProvider
- Works like
ReflectionProvider.getField(Class, String)
but returns null
instead of throwing ObjectAccessException
.
- Specified by:
getFieldOrNull
in interface ReflectionProvider
setFieldDictionary
public void setFieldDictionary(FieldDictionary dictionary)
readResolve
protected java.lang.Object readResolve()
Copyright © 2004-2011 XStream. All Rights Reserved.