org.exolab.castor.xml
public final class Introspector extends Object
Version: $Revision: 6216 $ $Date: 2006-04-14 04:14:43 -0600 (Fri, 14 Apr 2006) $
Nested Class Summary | |
---|---|
class | Introspector.IdentityConvertor
A special TypeConvertor that simply returns the object
given. |
class | Introspector.MethodSet
A simple struct for holding a set of accessor methods
|
Field Summary | |
---|---|
static String | WRAP_COLLECTIONS_PROPERTY
The property name for enabling collection wrapping.
|
Constructor Summary | |
---|---|
Introspector()
Creates a new instance of the Introspector. | |
Introspector(ClassLoader classLoader)
Creates a new instance of the Introspector.
|
Method Summary | |
---|---|
void | addFieldHandlerFactory(FieldHandlerFactory factory)
Registers the given "generalized" FieldHandlerFactory with this
Introspector.
|
XMLClassDescriptor | generateClassDescriptor(Class c)
Creates an XMLClassDescriptor for the given class by using Reflection. |
XMLClassDescriptor | generateClassDescriptor(Class c, PrintWriter errorWriter)
Creates an XMLClassDescriptor for the given class by using Reflection. |
NodeType | getPrimitiveNodeType()
Returns the NodeType for java primitives
|
static boolean | introspected(XMLClassDescriptor descriptor)
Returns true if the given XMLClassDescriptor was created via
introspection
|
static boolean | isCollection(Class clazz)
Returns true if the given Class is an instance of a
collection class. |
static boolean | isMapCollection(Class clazz)
Returns true if the given Class is an instance of a
collection class. |
static boolean | marshallable(Class type)
Returns true if the given Class can be marshalled.
|
boolean | removeFieldHandlerFactory(FieldHandlerFactory factory)
Removes the given FieldHandlerFactory from this Introspector
|
void | setNaming(XMLNaming naming)
Sets the Naming conventions to be used by the Introspector
|
void | setPrimitiveNodeType(NodeType nodeType)
Sets the NodeType for primitives. |
void | setSaveMapKeys(boolean saveMapKeys)
Sets whether or not keys from Hastable / Map instances
should be saved in the XML.
|
void | setWrapCollections(boolean wrapCollections)
Sets whether or not collections (arrays, vectors, etc)
should be wrapped in a container element. |
static String | toJavaName(String name, boolean upperFirst)
Converts the given xml name to a Java name. |
<foos> <foo>foo1</foo> <foo>foo2</foo> </foos> instead of the default: <foos>foo1<foos> <foos>foo2</foos>Use this property with a value of true or false in the castor.properties file org.exolab.castor.xml.introspector.wrapCollections=true -or- org.exolab.castor.xml.introspector.wrapCollections=false This property is false by default.
Parameters: classLoader
Parameters: factory the FieldHandlerFactory to add to this introspector
Throws: IllegalArgumentException if the given factory is null
Parameters: c the Class to create the XMLClassDescriptor for
Returns: the new XMLClassDescriptor created for the given class
Throws: MarshalException when an error occurs during the creation of the ClassDescriptor.
Parameters: c the Class to create the XMLClassDescriptor for errorWriter a PrintWriter to print error information to
Returns: the new XMLClassDescriptor created for the given class
Throws: MarshalException when an error occurs during the creation of the ClassDescriptor.
Returns: the NodeType for java primitives
Parameters: type the Class to check marshallability for.
Returns: true if the given Class can be marshalled.
Parameters: factory the FieldHandlerFactory to remove
Returns: true if the given FieldHandlerFactory was removed, or false otherwise.
Throws: IllegalArgumentException if the given factory is null
Parameters: naming the implementation of Naming to use. A value of null, will reset the XMLNaming to the default specified in the castor.properties file.
Parameters: nodeType the NodeType to use for primitive values.
Note: This is true by default since Castor 0.9.5.3
Parameters: saveMapKeys a boolean that when true indicates keys from Hashtable or Map instances should be saved. Otherwise only the value object is saved.
<foos> <foo>foo1</foo> <foo>foo2</foo> </foos> instead of the default: <foos>foo1<foos> <foos>foo2</foos>
Parameters: wrapCollections a boolean that when true indicates collections should be wrapped in a container element.
Parameters: name the name to convert to a Java Name upperFirst a flag to indicate whether or not the the first character should be converted to uppercase.