/******************************************************************************* | |
* Copyright (c) 2006, 2012 University College London Software Systems Engineering | |
* 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: | |
* Bruno Wassermann - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.runtimes.utils; | |
import org.eclipse.bpel.model.PartnerLink; | |
import org.eclipse.bpel.model.Scope; | |
import org.eclipse.emf.common.util.BasicEList; | |
import org.eclipse.emf.common.util.EList; | |
import org.eclipse.emf.common.util.TreeIterator; | |
import org.eclipse.emf.ecore.EObject; | |
/** | |
* A bunch of helper methods to support runtime providers get data from the | |
* BPEL model. | |
* | |
* @author Bruno Wassermann, written 11 May 2007 | |
*/ | |
public class BPELModelUtils { | |
/** | |
* Return an <code>EList</code> containing all partnerLink elements defined | |
* on Scopes in this process. | |
* | |
* @param process <code>EObject</code> representing the Process element | |
* @return <code>EList</code> containing all <code>PartnerLink</code>s | |
* defined on any Scopes (or none) | |
*/ | |
public static EList<PartnerLink> getScopePartnerLinks(final EObject process) { | |
TreeIterator<EObject> contents = process.eAllContents(); | |
EList<PartnerLink> results = new BasicEList<PartnerLink>(); | |
while (contents.hasNext()) { | |
EObject obj = contents.next(); | |
if (obj instanceof Scope) { | |
results.addAll(((Scope) obj).getPartnerLinks().getChildren()); | |
} | |
} | |
return results; | |
} | |
} |