Interface ResultObjectFactory
public interface ResultObjectFactory
iBATIS uses an implementation of this interface to create result objects after the execution of a statement. To use,
specify your implementation class as the type for the "resultObjectFactory" element in the SqlMapConfig. Any
implementation of this interface must have a public no argument constructor. Note that iBATIS makes use of this
interface through the ResultObjectFactoryUtil class.
- Author:
- Jeff Butler
-
Method Summary
Modifier and TypeMethodDescriptioncreateInstance
(String statementId, Class clazz) Returns a new instance of the requested class. iBATIS will call this method in these circumstances: When processing a result set - to create new instances of result objects When processing the output parameters of a stored procedure - to create instances of OUTPUT parameters When processing a nested select - to create instances of parameter objects on the nested select When processing result maps with nested result maps. iBATIS will ask the factory to create an instance of the nested object.void
setProperty
(String name, String value) Called for each property configured in the SqlMapCong file.
-
Method Details
-
createInstance
Object createInstance(String statementId, Class clazz) throws InstantiationException, IllegalAccessException Returns a new instance of the requested class. iBATIS will call this method in these circumstances:- When processing a result set - to create new instances of result objects
- When processing the output parameters of a stored procedure - to create instances of OUTPUT parameters
- When processing a nested select - to create instances of parameter objects on the nested select
- When processing result maps with nested result maps. iBATIS will ask the factory to create an instance of the
nested object. If the nested object is some implementation of
java.util.Collection
then iBATIS will supply default implementations of the common interfaces if the factory chooses not to create the object. If the embedded object is ajava.util.List
orjava.util.Collection
the default behavior is to create anjava.util.ArrayList
. If the embedded object is ajava.util.Set
the default behavior is to create ajava.util.HashSet
.
null
from this method, iBATIS will attempt to create in instance of the class with it's normal mechanism. This means that you can selectively choose which objects to create with this interface. In the event that you choose not to create an object, iBATIS will translate some common interfaces to their common implementations. If the requested class is List or Collection iBATIS will create an ArrayList. If the requested class is Set then iBATIS will create a HashSet. But these rules only apply if you choose not to create the object. So you can use this factory to supply custom implementations of those interfaces if you so desire.- Parameters:
statementId
- the ID of the statement that generated the call to this methodclazz
- the type of object to create- Returns:
- a new instance of the specified class. The instance must be castable to the specified class. If you return
null
, iBATIS will attempt to create the instance using it's normal mechanism. - Throws:
InstantiationException
- if the instance cannot be created. If you throw this Exception, iBATIS will throw a runtime exception in response and will end.IllegalAccessException
- if the constructor cannot be accessed. If you throw this Exception, iBATIS will throw a runtime exception in response and will end.
-
setProperty
-