com.ibatis.sqlmap.engine.mapping.result

Class ResultObjectFactoryUtil

public class ResultObjectFactoryUtil extends 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 ObjectcreateObjectThroughFactory(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 voidsetResultObjectFactory(ResultObjectFactory resultObjectFactory)
static voidsetStatementId(String statementId)

Method Detail

createObjectThroughFactory

public static Object createObjectThroughFactory(Class clazz)
Algorithm: 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 method clazz the type of object to create

Returns: a new instance of the specified class. The instance must be castable to the specified class.

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.

setResultObjectFactory

public static void setResultObjectFactory(ResultObjectFactory resultObjectFactory)

setStatementId

public static void setStatementId(String statementId)
Copyright © 2011. All Rights Reserved.