All Downloads are FREE. Search and download functionalities are using the official Maven repository.

oracle.toplink.essentials.queryframework.ResultSetMappingQuery Maven / Gradle / Ivy

There is a newer version: 2.1-60f
Show newest version
/*
 * The contents of this file are subject to the terms 
 * of the Common Development and Distribution License 
 * (the "License").  You may not use this file except 
 * in compliance with the License.
 * 
 * You can obtain a copy of the license at 
 * glassfish/bootstrap/legal/CDDLv1.0.txt or 
 * https://glassfish.dev.java.net/public/CDDLv1.0.html. 
 * See the License for the specific language governing 
 * permissions and limitations under the License.
 * 
 * When distributing Covered Code, include this CDDL 
 * HEADER in each file and include the License file at 
 * glassfish/bootstrap/legal/CDDLv1.0.txt.  If applicable, 
 * add the following below this CDDL HEADER, with the 
 * fields enclosed by brackets "[]" replaced with your 
 * own identifying information: Portions Copyright [yyyy] 
 * [name of copyright owner]
 */
// Copyright (c) 1998, 2007, Oracle. All rights reserved.  
package oracle.toplink.essentials.queryframework;
import java.util.*;

import oracle.toplink.essentials.internal.localization.ExceptionLocalization;
import oracle.toplink.essentials.exceptions.QueryException;
import oracle.toplink.essentials.exceptions.DatabaseException;
import oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl;
import oracle.toplink.essentials.sessions.DatabaseRecord;

/**
 * 

Purpose: * Concrete class to perform read using raw SQL and the SQLResultSetMapping. *

*

Responsibilities: * Execute a selecting raw SQL string. * Returns a List of results. Each item in the list will be another list * consisting of the expected populated return types in the order they were * specified in the SQLResultSetMapping * * @see SQLResultSetMapping * @author Gordon Yorke * @since TopLink Java Essentials */ public class ResultSetMappingQuery extends ObjectBuildingQuery { protected String resultSetMappingName; protected SQLResultSetMapping resultSetMapping; /** * PUBLIC: * Initialize the state of the query. */ public ResultSetMappingQuery() { super(); } /** * PUBLIC: * Initialize the query to use the specified call. */ public ResultSetMappingQuery(Call call) { this(); setCall(call); } /** * PUBLIC: * Initialize the query to use the specified call and SQLResultSetMapping */ public ResultSetMappingQuery(Call call, String sqlResultSetMappingName) { this(); setCall(call); this.resultSetMappingName = sqlResultSetMappingName; } /** * INTERNAL: * Clone the query. */ public Object clone() { ResultSetMappingQuery cloneQuery = (ResultSetMappingQuery)super.clone(); cloneQuery.resultSetMapping = this.resultSetMapping; cloneQuery.resultSetMappingName = this.resultSetMappingName; return cloneQuery; } /** * INTERNAL: * Convert all the class-name-based settings in this ResultSetMapping to actual class-based * settings. This method is used when converting a project that has been built * with class names to a project with classes. * @param classLoader */ public void convertClassNamesToClasses(ClassLoader classLoader){ resultSetMapping.convertClassNamesToClasses(classLoader); }; /** * PUBLIC: * Used to define a store procedure or SQL query. */ /* public void setCall(Call call) { if (call instanceof SQLCall){ ((SQLCall)call).setSQLString(((SQLCall)call).getCallString().replace('?','#')); } super.setCall(call); } */ /** * PUBLIC: * This will be the SQLResultSetMapping that is used by this query to process * the database results */ public void setSQLResultSetMapping(SQLResultSetMapping resultSetMapping){ this.resultSetMapping = resultSetMapping; this.resultSetMappingName = resultSetMapping.getName(); } /** * PUBLIC: * This will be the SQLResultSetMapping that is used by this query to process * the database results */ public void setSQLResultSetMappingName(String name){ if (name == null && this.resultSetMapping == null){ throw new IllegalArgumentException(ExceptionLocalization.buildMessage("null_sqlresultsetmapping_in_query")); } this.resultSetMappingName = name; } /** * INTERNAL: * This method is used to build the results. Interpreting the * SQLResultSetMapping. */ protected List buildObjectsFromRecords(List databaseRecords){ List results = new ArrayList(databaseRecords.size() ); SQLResultSetMapping mapping = this.getSQLResultSetMapping(); for (Iterator iterator = databaseRecords.iterator(); iterator.hasNext();){ if (mapping.getResults().size()>1){ Object[] resultElement = new Object[mapping.getResults().size()]; DatabaseRecord record = (DatabaseRecord)iterator.next(); for (int i = 0;i





© 2015 - 2024 Weber Informatics LLC | Privacy Policy