blob: a805ae1007fd92e3c6664a650dd36773b64bd81c [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.edit;
import java.util.Collection;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.epf.library.edit.realization.IRealizationManager;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.epf.uma.VariabilityElement;
/**
* This interface is used by item providers and commands that want to filter
* down related method elements in a method configuration.
*
* @author Phong Nguyen Le
* @author Jinhua Xi
* @since 1.0
*/
public interface IConfigurator extends IMethodConfigurationProvider, IFilter, Adapter {
void setMethodConfiguration(MethodConfiguration config);
MethodConfiguration getMethodConfiguration();
/**
* If this method return a non-NULL, the item provider will use the returned
* collection as children in place of its default chilren.
*
* @param obj
* @param childFeature
* @return
*/
Collection getChildren(Object obj, EStructuralFeature childFeature);
/**
* Resolves this object according to variability rules.
*
* @param object
* @return resolved object that is either the object itself, or its replacer
* depending on the variability of this object in the configuration.
*/
Object resolve(Object object);
/**
* Gets variability information for the given VariabilityElement calculated
* based on the configuration of this configurator and according to the
* variability rules.
*
* @param ve
* @return
* @see VariabilityInfo
*/
VariabilityInfo getVariabilityInfo(VariabilityElement ve);
/**
* get filter for uncategorized tasks
*
* @return IFilter
*/
public IFilter getUncategorizedTaskFilter();
/**
* get filter for workproducts without a domain
*
* @return IFilter
*/
public IFilter getDomainUncategorizedWorkProductFilter();
/**
* get filter for workproducts without a WP Type
*
* @return IFilter
*/
public IFilter getWpTypeUncategorizedWorkProductFilter();
/**
* get filter for uncategorized roles
*
* @return IFilter
*/
public IFilter getUncategorizedRoleFilter();
/**
* get filter for uncategorized tool mentors
*
* @return IFilter
*/
public IFilter getUncategorizedToolMentorFilter();
/**
* get filter for disciplines and displine groupings
*
* @return IFilter
*/
public IFilter getDisciplinesFilter();
/**
* get filter for rolesets and roleset groupings
*
* @return IFilter
*/
public IFilter getRoleSetsFilter();
/**
* @return an IRealizationManager instance
*/
public IRealizationManager getRealizationManager();
/**
* @param parentObject
* @param children
* @return
*/
public Collection<?> getModifiedChildren(Object parentObject, Collection children);
}