org.objectweb.medor.datasource.api
Interface Wrapper

All Known Implementing Classes:
JDBCWrapper, TCWrapper

public interface Wrapper

Represents a wrapper to fetch, delete or update data from a QueryLeaf at query evaluation time.

A Wrapper is associated to a QueryLeaf at a given point of time. There can be several Wrappers of the same type. One Wrapper can be associated sequentially to several QueryLeaves.

Author:
Sebastien Chassande-Barrioz

Method Summary
 long deleteData(QueryLeaf ql, ParameterOperand[] parameters, java.lang.Object connection, EvaluationMetaData evalmd)
          This method links the wrapper to a particular QueryLeaf, and executes the delete on the underlying data store.
 TupleCollection fetchData(QueryLeaf ql, ParameterOperand[] parameters, java.lang.Object connection, EvaluationMetaData evalmd)
          This method links the wrapper to a particular QueryLeaf, and executes the query on the underlying data store for fetching data.
 long updateData(QueryLeaf ql, ParameterOperand[] parameters, java.lang.Object connection, EvaluationMetaData evalmd)
          This method links the wrapper to a particular QueryLeaf, and executes data updating on the underlying data store.
 

Method Detail

fetchData

public TupleCollection fetchData(QueryLeaf ql,
                                 ParameterOperand[] parameters,
                                 java.lang.Object connection,
                                 EvaluationMetaData evalmd)
                          throws EvaluationException
This method links the wrapper to a particular QueryLeaf, and executes the query on the underlying data store for fetching data.

Parameters:
ql - the QueryLeaf
parameters - the parameters necessary for obtaining data from the QueryLeaf (in the case the QueryLeaf contains an expression)
connection - an Object which contains information for connecting to the DataStore behind the QueryLeaf (could be a JDBC connection, ...)s
Returns:
the TupleCollection containing the result of the execution.
Throws:
EvaluationException - in case of problems during the evaluation.

deleteData

public long deleteData(QueryLeaf ql,
                       ParameterOperand[] parameters,
                       java.lang.Object connection,
                       EvaluationMetaData evalmd)
                throws EvaluationException
This method links the wrapper to a particular QueryLeaf, and executes the delete on the underlying data store.

Parameters:
ql - the QueryLeaf
parameters - the parameters necessary for obtaining data from the QueryLeaf (in the case the QueryLeaf contains an expression)
connection - an Object which contains information for connecting to the DataStore behind the QueryLeaf (could be a JDBC connection, ...)s
Returns:
the number of deleted tuples.
Throws:
EvaluationException - in case of problems during the evaluation.

updateData

public long updateData(QueryLeaf ql,
                       ParameterOperand[] parameters,
                       java.lang.Object connection,
                       EvaluationMetaData evalmd)
                throws EvaluationException
This method links the wrapper to a particular QueryLeaf, and executes data updating on the underlying data store.

Parameters:
ql - the QueryLeaf
parameters - the parameters necessary for obtaining data from the QueryLeaf (in the case the QueryLeaf contains an expression)
connection - an Object which contains information for connecting to the DataStore behind the QueryLeaf (could be a JDBC connection, ...)s
evalmd - MUST define the update expression with the annotation ANNOTATION_UPDATE_EXPRESSION
Returns:
the number of updated tuples.
Throws:
EvaluationException - in case of problems during the evaluation.
See Also:
EvaluationMetaData.ANNOTATION_UPDATE_EXPRESSION