1 /** 2 * MEDOR: Middleware Enabling Distributed Object Requests 3 * 4 * Copyright (C) 2001-2003 France Telecom R&D 5 * Contact: alexandre.lefebvre@rd.francetelecom.com 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 * 21 * Initial developers: M. Alia, A. Lefebvre, S. Chassande-Barrioz 22 */ 23 24 package org.objectweb.medor.datasource.api; 25 26 import org.objectweb.medor.api.EvaluationException; 27 import org.objectweb.medor.expression.api.ParameterOperand; 28 import org.objectweb.medor.query.api.QueryLeaf; 29 import org.objectweb.medor.tuple.api.TupleCollection; 30 import org.objectweb.medor.eval.api.EvaluationMetaData; 31 32 /** 33 * Represents a wrapper to access data from a QueryLeaf at query evaluation 34 * time. 35 * <p>A Wrapper is associated to a QueryLeaf at a given point of time. 36 * There can be several Wrappers of the same type. 37 * One Wrapper can be associated sequentially to several QueryLeaves. 38 * 39 * @author Sebastien Chassande-Barrioz 40 */ 41 public interface Wrapper { 42 /** 43 * This method links the wrapper to a particular QueryLeaf, and executes 44 * the query on the underlying data store. 45 * @param ql the QueryLeaf 46 * @param parameters the parameters necessary for obtaining data from the 47 * QueryLeaf (in the case the QueryLeaf contains an expression) 48 * @param connection an Object which contains information for connecting 49 * to the DataStore behind the QueryLeaf (could be a JDBC connection, ...)s 50 * @return the TupleCollection containing the result of the execution. 51 * @throws EvaluationException in case of problems during the evaluation. 52 * 53 */ 54 TupleCollection fetchData(QueryLeaf ql, 55 ParameterOperand[] parameters, 56 Object connection, 57 EvaluationMetaData evalmd) 58 throws EvaluationException; 59 } 60