com.ibatis.sqlmap.engine.mapping.result
Class ResultObjectFactoryUtil
java.lang.Object
com.ibatis.sqlmap.engine.mapping.result.ResultObjectFactoryUtil
public class ResultObjectFactoryUtil
- extends java.lang.Object
This class is used to create instances of result objects. It will
use the configured ResultObjectFactory if there is one, otherwise
it will use iBATIS' normal methods.
Note that this class is somewhat tightly coupled with
SqlExecuter - SqlExecute must call the setStatementId() and
setResultObjectFactory() methods before executing a statement.
This is a result of using a ThreadLocal to hold the current
configuration for the statement under execution. Using a
ThreadLocal is a solution for IBATIS-366. Without a ThreadLocal,
the current factory and statement id would have to be added to
many method signatures - often in inappropriate places.
- Author:
- Jeff Butler
Method Summary |
static java.lang.Object |
createObjectThroughFactory(java.lang.Class clazz)
Algorithm:
If factory is null, then create object internally()
Otherwise try to create object through factory
If null returned from factory, then create object internally
This allows the factory to selectively create objects, also allows for
the common possibility that a factory is not configured. |
static void |
setResultObjectFactory(ResultObjectFactory resultObjectFactory)
|
static void |
setStatementId(java.lang.String statementId)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
createObjectThroughFactory
public static java.lang.Object createObjectThroughFactory(java.lang.Class clazz)
throws java.lang.InstantiationException,
java.lang.IllegalAccessException
- Algorithm:
- If factory is null, then create object internally()
- Otherwise try to create object through factory
- If null returned from factory, then create object internally
This allows the factory to selectively create objects, also allows for
the common possibility that a factory is not configured.
- Parameters:
factory
- the factory to use. May be null!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.
- Throws:
java.lang.InstantiationException
- if the instance cannot be created. If you throw this Exception,
iBATIS will throw a runtime exception in response and will end.
java.lang.IllegalAccessException
- if the constructor cannot be accessed. If you throw this
Exception, iBATIS will throw a runtime exception in response and
will end.
setResultObjectFactory
public static void setResultObjectFactory(ResultObjectFactory resultObjectFactory)
setStatementId
public static void setStatementId(java.lang.String statementId)