All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.bpelunit.model.bpel._2_0.Pick Maven / Gradle / Ivy

The newest version!
package net.bpelunit.model.bpel._2_0;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import net.bpelunit.model.bpel.IBpelObject;
import net.bpelunit.model.bpel.IOnAlarm;
import net.bpelunit.model.bpel.IOnMessage;
import net.bpelunit.model.bpel.IPick;
import net.bpelunit.model.bpel.IVisitor;

import org.oasis_open.docs.wsbpel._2_0.process.executable.TBoolean;
import org.oasis_open.docs.wsbpel._2_0.process.executable.TOnAlarmPick;
import org.oasis_open.docs.wsbpel._2_0.process.executable.TOnMessage;
import org.oasis_open.docs.wsbpel._2_0.process.executable.TPick;

public class Pick extends AbstractActivity implements IPick {

	private List onMessages = new ArrayList();
	private List onAlarms = new ArrayList();
	private BpelFactory factory;

	public Pick(TPick wrappedPick, BpelFactory f) {
		super(wrappedPick, f);

		this.factory = f;
		
		for(TOnMessage m : wrappedPick.getOnMessage()) {
			onMessages.add(new OnMessage(m, f));
		}
		
		for(TOnAlarmPick a : wrappedPick.getOnAlarm()) {
			onAlarms.add(new OnAlarm(a, f));
		}
	}

	@Override
	public boolean isBasicActivity() {
		return false;
	}

	@Override
	public void visit(IVisitor v) {
		v.visit(this);
		for(IOnMessage m : onMessages ) {
			v.visit(m);
		}

		for(IOnAlarm a : onAlarms ) {
			v.visit(a);
		}
	}

	@Override
	public void setCreateInstance(boolean b) {
		if(b) {
			getNativeActivity().setCreateInstance(TBoolean.YES);
		} else {
			getNativeActivity().setCreateInstance(TBoolean.NO);
		}
	}

	@Override
	public boolean isCreateInstance() {
		return TBoolean.YES.equals(getNativeActivity().getCreateInstance());
	}

	@Override
	public List getOnMessages() {
		return Collections.unmodifiableList(onMessages);
	}

	@Override
	public List getOnAlarms() {
		return Collections.unmodifiableList(onAlarms);
	}

	@Override
	public OnMessage addOnMessage() {
		TOnMessage nativeOnMessage = new TOnMessage();
		OnMessage onMessage = new OnMessage(nativeOnMessage, factory);
		onMessages.add(onMessage);
		getNativeActivity().getOnMessage().add(nativeOnMessage);
		
		return onMessage;
	}

	@Override
	public OnAlarm addOnAlarm() {
		TOnAlarmPick nativeOnAlarm = new TOnAlarmPick();
		OnAlarm onAlarm = new OnAlarm(nativeOnAlarm, factory);
		onAlarms.add(onAlarm);
		getNativeActivity().getOnAlarm().add(nativeOnAlarm);
		
		return onAlarm;
	}
	
	@Override
	IBpelObject getObjectForNativeObject(Object nativeObject) {
		if(nativeObject == getNativeActivity()) {
			return this;
		}
		
		for(OnMessage m : onMessages) {
			IBpelObject o = m.getObjectForNativeObject(nativeObject);
			if(o != null) {
				return o; 
			}
		}
		
		for(OnAlarm a : onAlarms) {
			IBpelObject o = a.getObjectForNativeObject(nativeObject);
			if(o != null) {
				return o; 
			}
		}
		
		return null;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy