blob: 28bb78ffa20e237904343644f2bc22a4b102d43b [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 org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.epf.uma.ecore.util.OppositeFeature;
import com.ibm.uma.ContentDescription;
import com.ibm.uma.MethodConfiguration;
import com.ibm.uma.MethodElement;
import com.ibm.uma.VariabilityElement;
/**
* @author Phong Nguyen Le
* @author Shilpa Toraskar
* @since 1.0
*/
public interface IConfigurationApplicator {
/**
* Gets the attribute value of the given VariabilityElement <code>ve</code>
* calculated based on the given MethodConfiguration <code>config</code>
*
* @param ve
* @param attribute
* @param config
* @return the calculated attribute value
*/
Object getAttribute(VariabilityElement ve, EAttribute attribute,
MethodConfiguration config);
/**
* Gets the reference value of the given VariabilityElement <code>ve</code>
* calculated based on the given MethodConfiguration <code>config</code>
*
* @param ve
* @param ref
* @param config
* @return the calculated reference value
*/
Object getReference(VariabilityElement ve, EReference ref,
MethodConfiguration config);
/**
* Gets the reference value of the given ContentDescription <code>ve</code>
* calculated based on the given MethodConfiguration <code>config</code>
*
* @param desc
* @param ref
* @param config
* @return the calculated reference value
*/
Object getReference(ContentDescription desc, MethodElement owner, EReference ref,
MethodConfiguration config);
/**
* Get references for opposite feature for the method element
* @param element
* @param feature
* @param config
* @return
*/
public Object getReference(MethodElement element,
OppositeFeature feature, MethodConfiguration config);
/**
* Resolves the given object using the given configuration
*
* @param object
* @param config
* @return
*/
Object resolve(Object object, MethodConfiguration config);
}