blob: 85800ad4b452e76f6f758f81082a7e87d04a010f [file] [log] [blame]
/**
*/
package org.eclipse.skills.model.impl;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.skills.model.IDependency;
import org.eclipse.skills.model.ISequenceDependency;
import org.eclipse.skills.model.ISkillsPackage;
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Sequence Dependency</b></em>'. <!-- end-user-doc -->
*
* @generated
*/
public class MSequenceDependency extends MAndDependency implements ISequenceDependency {
private int fIndexOfActiveChildDependency = 0;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
protected MSequenceDependency() {
super();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return ISkillsPackage.Literals.SEQUENCE_DEPENDENCY;
}
/**
* @generated NOT
*/
@Override
public void activate() {
activateNextDependency();
evaluateDependencies();
}
/**
* @generated NOT
*/
@Override
public void evaluateDependencies() {
for (int index = fIndexOfActiveChildDependency; index < getDependencies().size(); index++) {
if (!getDependencies().get(index).isFulfilled()) {
setFulfilled(false);
return;
} else {
fIndexOfActiveChildDependency = index + 1;
activateNextDependency();
}
}
setFulfilled(true);
}
/**
* @generated NOT
*/
private void activateNextDependency() {
if (fIndexOfActiveChildDependency < getDependencies().size()) {
final IDependency nextDependency = getDependencies().get(fIndexOfActiveChildDependency);
nextDependency.eAdapters().add(getChangeAdapter());
nextDependency.activate();
}
}
} // MSequenceDependency