blob: 644ffa94be25eb46ae16ac9817eda7f2b65f6e4a [file] [log] [blame]
/**
* Copyright (c) 2009, 2019 Mia-Software and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Gregoire Dupe (Mia-Software) - initial API and implementation
* Emmanuelle Rouillé (Mia-Software) - Bug 352618 - To be able to use non derived facet structural features and save them values.
* Nicolas Bros (Mia-Software) - Bug 361612 - New core for new version of the Facet metamodel
* Nicolas Bros (Mia-Software) - Bug 362191 - [Restructuring] Query mechanism for eFacet2
* Gregoire Dupe (Mia-Software) - Bug 443682 - Access to the super facet
*/
package org.eclipse.modisco.facet.query.java.core;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.modisco.facet.efacet.core.IFacetManager;
import org.eclipse.modisco.facet.efacet.core.exception.DerivedTypedElementException;
import org.eclipse.modisco.facet.efacet.metamodel.v0_2_0.efacet.DerivedTypedElement;
/**
* This interface is implemented by each Java query (a Java query is a query written in Java).
*
* @param <T>
* the source type of the query
* @param <R>
* the return type of the query
* @since 0.5
*/
public interface IJavaQuery3<T extends EObject, R> {
// This interface is a copy of
// org.eclipse.modisco.facet.infra.query.core.java.IJavaModelQuery<T, R>
/**
* This method must be implemented by each sub class to implement query
* evaluation.
*
* @param source
* The model element on which the query will be evaluated
* @param parameterValues
* The query parameter values (only used for queries that implement operations)
* @return the result of the query
* @throws DerivedTypedElementException
*/
R evaluate(T source, IParameterValueList2 parameterValues,
IFacetManager facetManager, DerivedTypedElement feature)
throws DerivedTypedElementException;
}