/******************************************************************************* | |
* Copyright (c) 2005, 2012 IBM Corporation and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License 2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/legal/epl-2.0/ | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.ui.details.providers; | |
import java.util.Iterator; | |
import java.util.List; | |
import org.eclipse.bpel.model.Process; | |
import org.eclipse.bpel.model.Scope; | |
import org.eclipse.bpel.model.Variable; | |
/** | |
* Content provider for variables. | |
* | |
* Expects a Process or a Scope as input. | |
*/ | |
public class LocalVariableContentProvider extends AbstractContentProvider { | |
protected boolean needValidMessage; // if true, shows ONLY variables with valid messages | |
/** | |
* @param needValidMessage if true, shows ONLY variables with valid messages | |
*/ | |
public LocalVariableContentProvider(boolean needValidMessage) { | |
this.needValidMessage = needValidMessage; | |
} | |
public LocalVariableContentProvider() { | |
this.needValidMessage = false; | |
} | |
@Override | |
public void collectElements(Object input, List list) { | |
if (input instanceof Process) { | |
Process process = (Process) input; | |
if (!needValidMessage) { | |
list.addAll ( process.getVariables().getChildren() ); | |
return; | |
} | |
Iterator it = process.getVariables().getChildren().iterator(); | |
while (it.hasNext()) { | |
Variable var = (Variable) it.next(); | |
if (var.getMessageType() != null) { | |
list.add(var); | |
} | |
} | |
} else if (input instanceof Scope) { | |
Scope scope = (Scope) input; | |
if (scope.getVariables() == null) { | |
return ; | |
} | |
Iterator it = scope.getVariables().getChildren().iterator(); | |
while (it.hasNext()) { | |
Variable var = (Variable) it.next(); | |
if (var.getMessageType() != null || var.getType() != null) | |
list.add(var); | |
} | |
} | |
} | |
} |