public interface IQueryCollectionImplementation extends IQueryImplementation
If only IQueryImplementation
is implemented, then the framework will perform multiple-evaluation by calling
the single evaluation multiple times, which may be slow in the case of high-latency implementations.
Modifier and Type | Method and Description |
---|---|
java.util.List<? extends ETypedElementResult> |
getValues(Query query,
ETypedElement eTypedElement,
java.util.Collection<? extends EObject> sources,
java.util.List<ParameterValue> arguments)
This method must be implemented by each sub-class to evaluate a query on a collection of elements.
|
void |
setValues(Query query,
DerivedTypedElement feature,
java.util.Collection<? extends EObject> sources,
java.util.List<ParameterValue> arguments,
java.util.List<? extends java.lang.Object> newValues)
This method must be implemented by each sub-class to set the values of a collection of elements.
|
getValue, isCheckResultType, setValue
java.util.List<? extends ETypedElementResult> getValues(Query query, ETypedElement eTypedElement, java.util.Collection<? extends EObject> sources, java.util.List<ParameterValue> arguments) throws DerivedTypedElementException
This method should throw a DerivedTypedElementException
only if the eTypedElement is an incorrect
DerivedTypedElement
. But it must not throw an exception if the evaluation of one element fails. Instead,
it must set the exception on the corresponding result (ETypedElementResult.setException(Throwable)
).
query
- The query to evaluateeTypedElement
- The feature or operation to get on the sourcessources
- The model elements on which the feature or operation is evaluated using the queryarguments
- The parameter values for the eTypedElement (in the case of a FacetOperation
); can be
null
ETypedElementPrimitiveTypeResult
if the eTypedElement is single-valued and returns
a primitive type ETypedElementPrimitiveTypeListResult
if the eTypedElement is
multi-valued and returns a primitive type ETypedElementEObjectResult
if the
eTypedElement is single-valued and returns a model element ETypedElementEObjectListResult
if the eTypedElement is multi-valued and returns model elements
DerivedTypedElementException
- if the given derivedTypedElement is incorrectvoid setValues(Query query, DerivedTypedElement feature, java.util.Collection<? extends EObject> sources, java.util.List<ParameterValue> arguments, java.util.List<? extends java.lang.Object> newValues) throws DerivedTypedElementException
query
- The query to evaluatefeature
- The derived typed element to setsources
- The model elements on which the query is evaluatedarguments
- The parameter values for the derived typed element (in the case of a FacetOperation
); can be
null
newValues
- the new values for the sources; the size of this list must match the size of the list of sourcesDerivedTypedElementException
- if the given derivedTypedElement is incorrectDerivedTypedElementEvaluationException
- if the query could not be evaluated correctlyjava.lang.IllegalArgumentException
- if the given list of values does not match the list of sources