Package com.ibatis.sqlmap.engine.type

Examples of com.ibatis.sqlmap.engine.type.TypeHandlerFactory


        cacheModels = new HashMap();
        resultMaps = new HashMap();
        parameterMaps = new HashMap();

        sqlExecutor = new SqlExecutor();
        typeHandlerFactory = new TypeHandlerFactory();
        dataExchangeFactory = new DataExchangeFactory(typeHandlerFactory);

        DEBUG.P(0, this, "SqlMapExecutorDelegate()");
    }
View Full Code Here


    public void initialize(Map properties) {
    }

    public Object[] getData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject) {
        TypeHandlerFactory typeHandlerFactory = getDataExchangeFactory().getTypeHandlerFactory();
        if (parameterObject == null) {
            return new Object[1];
        } else {
            if (typeHandlerFactory.hasTypeHandler(parameterObject.getClass())) {
                ParameterMapping[] mappings = parameterMap.getParameterMappings();
                Object[] data = new Object[mappings.length];
                for (int i = 0; i < mappings.length; i++) {
                    data[i] = parameterObject;
                }
View Full Code Here

            }
        }
    }

    public Object setData(StatementScope statementScope, ResultMap resultMap, Object resultObject, Object[] values) {
        TypeHandlerFactory typeHandlerFactory = getDataExchangeFactory().getTypeHandlerFactory();
        if (typeHandlerFactory.hasTypeHandler(resultMap.getResultClass())) {
            return values[0];
        } else {
            Object object = resultObject;
            if (object == null) {
                try {
View Full Code Here

            return object;
        }
    }

    public Object setData(StatementScope statementScope, ParameterMap parameterMap, Object parameterObject, Object[] values) {
        TypeHandlerFactory typeHandlerFactory = getDataExchangeFactory().getTypeHandlerFactory();
        if (typeHandlerFactory.hasTypeHandler(parameterMap.getParameterClass())) {
            return values[0];
        } else {
            Object object = parameterObject;
            if (object == null) {
                try {
View Full Code Here

    }

    protected Object getNestedSelectMappingValue(StatementScope statementScope, ResultSet rs, ResultMapping mapping,
            Class targetType) throws SQLException {
        try {
            TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory();

            String statementName = mapping.getStatementName();
            SqlMapClientImpl client = (SqlMapClientImpl) statementScope.getSession().getSqlMapClient();

            MappedStatement mappedStatement = client.getMappedStatement(statementName);
            Class parameterType = mappedStatement.getParameterClass();
            Object parameterObject = null;

            if (parameterType == null) {
                parameterObject = prepareBeanParameterObject(statementScope, rs, mapping, parameterType);
            } else {
                if (typeHandlerFactory.hasTypeHandler(parameterType)) {
                    parameterObject = preparePrimitiveParameterObject(rs, mapping, parameterType);
                } else if (DomTypeMarker.class.isAssignableFrom(parameterType)) {
                    parameterObject = prepareDomParameterObject(rs, mapping);
                } else {
                    parameterObject = prepareBeanParameterObject(statementScope, rs, mapping, parameterType);
                }
            }

            Object result = null;
            if (parameterObject != null) {

                Sql sql = mappedStatement.getSql();
                ResultMap resultMap = sql.getResultMap(statementScope, parameterObject);
                Class resultClass = resultMap.getResultClass();

                if (resultClass != null && !DomTypeMarker.class.isAssignableFrom(targetType)) {
                    if (DomCollectionTypeMarker.class.isAssignableFrom(resultClass)) {
                        targetType = DomCollectionTypeMarker.class;
                    } else if (DomTypeMarker.class.isAssignableFrom(resultClass)) {
                        targetType = DomTypeMarker.class;
                    }
                }

                result = ResultLoader.loadResult(client, statementName, parameterObject, targetType);

                String nullValue = mapping.getNullValue();
                if (result == null && nullValue != null) {
                    TypeHandler typeHandler = typeHandlerFactory.getTypeHandler(targetType);
                    if (typeHandler != null) {
                        result = typeHandler.valueOf(nullValue);
                    }
                }
            }
View Full Code Here

    }

    private Object preparePrimitiveParameterObject(ResultSet rs, ResultMapping mapping, Class parameterType) throws SQLException {
        Object parameterObject;
        TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory();
        TypeHandler th = typeHandlerFactory.getTypeHandler(parameterType);
        parameterObject = th.getResult(rs, mapping.getColumnName());
        return parameterObject;
    }
View Full Code Here

            throw new RuntimeException("Error creating XML document.  Cause: " + e);
        }
    }

    private Object prepareDomParameterObject(ResultSet rs, ResultMapping mapping) throws SQLException {
        TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory();

        Document doc = newDocument("parameter");
        Probe probe = ProbeFactory.getProbe(doc);

        String complexName = mapping.getColumnName();

        TypeHandler stringTypeHandler = typeHandlerFactory.getTypeHandler(String.class);
        if (complexName.indexOf('=') > -1) {
            // old 1.x style multiple params
            StringTokenizer parser = new StringTokenizer(complexName, "{}=, ", false);
            while (parser.hasMoreTokens()) {
                String propName = parser.nextToken();
View Full Code Here

        return doc;
    }

    private Object prepareBeanParameterObject(StatementScope statementScope, ResultSet rs, ResultMapping mapping,
            Class parameterType) throws InstantiationException, IllegalAccessException, SQLException {
        TypeHandlerFactory typeHandlerFactory = getDelegate().getTypeHandlerFactory();

        Object parameterObject;
        if (parameterType == null) {
            parameterObject = new HashMap();
        } else {
            parameterObject = ResultObjectFactoryUtil.createObjectThroughFactory(parameterType);
        }
        String complexName = mapping.getColumnName();

        if (complexName.indexOf('=') > -1 || complexName.indexOf(',') > -1) {
            StringTokenizer parser = new StringTokenizer(complexName, "{}=, ", false);
            while (parser.hasMoreTokens()) {
                String propName = parser.nextToken();
                String colName = parser.nextToken();
                Class propType = PROBE.getPropertyTypeForSetter(parameterObject, propName);
                TypeHandler propTypeHandler = typeHandlerFactory.getTypeHandler(propType);
                Object propValue = propTypeHandler.getResult(rs, colName);
                PROBE.setObject(parameterObject, propName, propValue);
            }
        } else {
            // single param
            TypeHandler propTypeHandler = typeHandlerFactory.getTypeHandler(parameterType);
            if (propTypeHandler == null) {
                propTypeHandler = typeHandlerFactory.getUnkownTypeHandler();
            }
            parameterObject = propTypeHandler.getResult(rs, complexName);
        }

        return parameterObject;
View Full Code Here

TOP

Related Classes of com.ibatis.sqlmap.engine.type.TypeHandlerFactory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.