blob: d72cd37c41759d534509413562351b057b356ce8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Obeo.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Obeo - initial API and implementation
*******************************************************************************/
package org.eclipse.acceleo.query.runtime;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EPackage;
/**
* Listener for {@link IQueryEnvironment}.
*
* @author <a href="mailto:yvan.lussaud@obeo.fr">Yvan Lussaud</a>
* @since 4.1
*/
public interface IQueryEnvironmentListener {
/**
* Notifies a call to {@link IQueryEnvironment#registerService(IService)}.
*
* @param result
* the {@link ServiceRegistrationResult} to be returned by
* {@link IQueryEnvironment#registerService(IService)}
* @param service
* the registered {@link IService}
* @since 5.0
*/
void serviceRegistered(ServiceRegistrationResult result, IService<?> service);
/**
* Notifies a call to {@link IQueryEnvironment#removeService(IService)}.
*
* @param service
* the removed {@link IService}
* @since 5.0
*/
void serviceRemoved(IService<?> service);
/**
* Notifies a call to {@link IQueryEnvironment#registerEPackage(EPackage)}.
*
* @param ePackage
* the registered {@link EPackage}
*/
void ePackageRegistered(EPackage ePackage);
/**
* Notifies a call to {@link IQueryEnvironment#removeEPackage(EPackage)}.
*
* @param ePackage
* the removed {@link EPackage}
*/
void ePackageRemoved(EPackage ePackage);
/**
* Notifies a call to {@link IQueryEnvironment#registerCustomClassMapping(EClassifier, Class)}.
*
* @param eClassifier
* the {@link EClassifier}
* @param cls
* the {@link Class}
*/
void customClassMappingRegistered(EClassifier eClassifier, Class<?> cls);
}