| /** |
| */ |
| 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 |