blob: 43cb38133819ab513d13e4ae8182c5c1d359bb45 [file] [log] [blame]
/**
* Copyright (c) 2012 CEA LIST.
* 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:
* Gregoire Dupe (Mia-Software) - Bug 375087 - [Table] ITableWidget.addColumn(List<ETypedElement>, List<FacetSet>)
* Gregoire Dupe (Mia-Software) - Bug 372626 - Aggregates
*/
package org.eclipse.modisco.facet.efacet.core.internal.exported;
import java.util.List;
/**
* The interface has to be implemented to contribute to the extension point
* 'org.eclipse.modisco.facet.efacet.core.internal.resolver'.
*/
public interface IResolver {
/**
* Return true is the parameter object can be handle by the implementation
* of this interface.
*
* @param object
* @return
*/
boolean canHandle(Object object);
/**
* If the parameter 'object' is a proxy, this method returns the
* corresponding a resolved object.
*
* @param object
* a proxy
* @param aClass
* the expected resolved object
*/
<T> T resolve(Object object, Class<T> aClass);
/**
* This method returns the objects that have to be automatically selected
* when the parameter 'selectedObject' is selected.
*
* @param selectedObject
* @param aClass
* the expected list elements type.
*/
<T> List<T> selectionPropagation(Object selectedObject, Class<T> aClass);
/**
* This method returns the root of the objects that have to be automatically
* selected when the parameter 'selectedObject' is selected.
*
* @param selectedObject
* @param aClass
* the expected list elements type.
*/
<T> T selectionRoot(Object selectedObject, Class<T> aClass);
}