[overlord-commits] Overlord SVN: r580 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src: test/org/jboss/tools/overlord/cdl/bpel/model/component and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Sat Apr 11 17:37:43 EDT 2009


Author: objectiser
Date: 2009-04-11 17:37:43 -0400 (Sat, 11 Apr 2009)
New Revision: 580

Added:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Catch.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAll.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlers.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnEvent.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLink.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandler.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAllTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlersTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlersTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/OnEventTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLinkTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandlerTest.java
Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/BPELElement.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlers.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/ScopeTest.java
Log:
Finished required aspects of scope and sub-components, plus tests.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/BPELElement.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/BPELElement.java	2009-04-10 22:48:28 UTC (rev 579)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/BPELElement.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -56,7 +56,7 @@
 								String elemName) {
 		m_model = model;
 		
-		m_element = model.getBPELProcess().
+		m_element = model.getBPELProcessElement().
 				getOwnerDocument().createElementNS(BPEL_NS, elemName);
 
 		getSource().setObject(this);
@@ -170,9 +170,23 @@
 	 * 			by the supplied class
 	 */
 	protected java.util.List<BPELElement> findChildElements(Class<? extends BPELElement> cls) {
+		return(findChildElements(getDOMElement(), cls));
+	}
+
+	/**
+	 * This method returns the child elements that conform to
+	 * the supplied class.
+	 * 
+	 * @param root The root element
+	 * @param cls The class
+	 * @return The list of child elements of the type specified
+	 * 			by the supplied class
+	 */
+	protected java.util.List<BPELElement> findChildElements(org.w3c.dom.Element root,
+						Class<? extends BPELElement> cls) {
 		java.util.List<BPELElement> ret=new java.util.Vector<BPELElement>();
 		
-		org.w3c.dom.NodeList nl=getDOMElement().getChildNodes();
+		org.w3c.dom.NodeList nl=root.getChildNodes();
 		
 		for (int i=0; i < nl.getLength(); i++) {
 			

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Catch.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Catch.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Catch.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,136 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import java.util.List;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.ConversionContext;
+import org.scribble.model.Activity;
+
+/**
+ * This class represents the 'catch' construct contained
+ * within the 'faultHandlers' element.
+ */
+public class Catch extends BPELElement {
+
+	private static final long serialVersionUID = 8191152745680660045L;
+
+	public static final String CATCH="catch";
+	
+	private static final String FAULT_NAME = "faultName";
+	private static final String FAULT_VARIABLE = "faultVariable";
+
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 * @param activity The XML configuration details for the element
+	 */
+	public Catch(BPELLanguageModel model,
+					org.w3c.dom.Element activity) {
+		super(model, activity);
+		
+		m_activity = findChildActivity();
+	}
+
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 */
+	public Catch(BPELLanguageModel model) {
+		super(model, CATCH);
+	}
+
+	@Override
+	public void convert(List<Activity> activities, ConversionContext context) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	/**
+	 * This method sets the activity associated with
+	 * the 'else' construct.
+	 * 
+	 * @param act The activity
+	 */
+	public void setActivity(BPELElement act) {
+		m_activity = act;
+		
+		BPELElement existing=findChildActivity();
+		org.w3c.dom.Element existingElem=null;
+		
+		if (existing != null) {
+			existingElem = existing.getDOMElement();
+		}
+
+		org.w3c.dom.Element insertBefore=null;
+		
+		setChildElement(existingElem, act,
+						insertBefore);
+	}
+	
+	/**
+	 * This method returns the activity associated with
+	 * the 'else' construct.
+	 * 
+	 * @return The activity
+	 */
+	public BPELElement getActivity() {
+		return(m_activity);
+	}
+	
+	/**
+	 * This method sets the fault name.
+	 * 
+	 * @param faultName The fault name
+	 */
+	public void setFaultName(String faultName) {		
+		getDOMElement().setAttribute(FAULT_NAME, faultName);
+	}
+	
+	/**
+	 * This method returns the fault name.
+	 * 
+	 * @return The fault name
+	 */
+	public String getFaultName() {
+		return(getDOMElement().getAttribute(FAULT_NAME));
+	}
+
+	/**
+	 * This method sets the fault variable.
+	 * 
+	 * @param faultVariable The fault variable
+	 */
+	public void setFaultVariable(String faultVariable) {		
+		getDOMElement().setAttribute(FAULT_VARIABLE, faultVariable);
+	}
+	
+	/**
+	 * This method returns the fault variable.
+	 * 
+	 * @return The fault variable
+	 */
+	public String getFaultVariable() {
+		return(getDOMElement().getAttribute(FAULT_VARIABLE));
+	}
+
+	private BPELElement m_activity;
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAll.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAll.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAll.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import java.util.List;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.ConversionContext;
+import org.scribble.model.Activity;
+
+/**
+ * This class represents the 'catchAll' construct contained
+ * within the 'faultHandlers' element.
+ */
+public class CatchAll extends BPELElement {
+
+	private static final long serialVersionUID = 975038289163694699L;
+
+	public static final String CATCHALL="catchAll";
+	
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 * @param activity The XML configuration details for the element
+	 */
+	public CatchAll(BPELLanguageModel model,
+					org.w3c.dom.Element activity) {
+		super(model, activity);
+		
+		m_activity = findChildActivity();
+	}
+
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 */
+	public CatchAll(BPELLanguageModel model) {
+		super(model, CATCHALL);
+	}
+
+	@Override
+	public void convert(List<Activity> activities, ConversionContext context) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	/**
+	 * This method sets the activity associated with
+	 * the 'else' construct.
+	 * 
+	 * @param act The activity
+	 */
+	public void setActivity(BPELElement act) {
+		m_activity = act;
+		
+		BPELElement existing=findChildActivity();
+		org.w3c.dom.Element existingElem=null;
+		
+		if (existing != null) {
+			existingElem = existing.getDOMElement();
+		}
+
+		org.w3c.dom.Element insertBefore=null;
+		
+		setChildElement(existingElem, act,
+						insertBefore);
+	}
+	
+	/**
+	 * This method returns the activity associated with
+	 * the 'else' construct.
+	 * 
+	 * @return The activity
+	 */
+	public BPELElement getActivity() {
+		return(m_activity);
+	}
+	
+	private BPELElement m_activity;
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlers.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlers.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlers.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,218 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.scribble.model.*;
+import org.scribble.model.admin.ModelListener;
+import org.jboss.tools.overlord.cdl.bpel.model.*;
+
+/**
+ * This class represents the 'eventHandlers' component within
+ * a 'scope' element.
+ *  
+ * @author gary
+ */
+public class EventHandlers extends BPELElement {
+
+	private static final long serialVersionUID = 118381918664522750L;
+
+	public static final String EVENTHANDLERS = "eventHandlers";
+	
+	/**
+	 * The constructor for the activity.
+	 * 
+	 * @param model The BPEL model
+	 * @param activity The XML configuration details for the activity
+	 */
+	public EventHandlers(BPELLanguageModel model,
+					org.w3c.dom.Element activity) {
+		super(model, activity);
+		
+		java.util.List<BPELElement> onevts=
+					findChildElements(OnEvent.class);
+		
+		for (int i=0; i < onevts.size(); i++) {
+			if (onevts.get(i) instanceof OnEvent) {
+				m_onEvents.add((OnEvent)onevts.get(i));
+			}
+		}
+		
+		java.util.List<BPELElement> onalrms=
+					findChildElements(OnAlarm.class);
+		
+		for (int i=0; i < onalrms.size(); i++) {
+			if (onalrms.get(i) instanceof OnAlarm) {
+				m_onAlarms.add((OnAlarm)onalrms.get(i));
+			}
+		}
+	}
+
+	/**
+	 * The constructor for the activity.
+	 * 
+	 * @param model The BPEL model
+	 */
+	public EventHandlers(BPELLanguageModel model) {
+		super(model, EVENTHANDLERS);
+	}
+
+	/**
+	 * This method adds an 'onEvent' to the grouping construct.
+	 * 
+	 * @param on The 'onEvent' to be added
+	 * @param pos The position to add, or -1 if at the end
+	 */
+	public void addOnEvent(OnEvent on, int pos) {
+		if (pos == -1 || pos >= m_onEvents.size()) {
+			m_onEvents.add(on);
+			
+			org.w3c.dom.Element insertBefore=null;
+			
+			if (m_onAlarms.size() > 0) {
+				insertBefore = m_onAlarms.get(0).getDOMElement();
+			}
+			
+			setChildElement(null, on, insertBefore);
+		} else {
+			
+			OnEvent cur=m_onEvents.get(pos);
+			
+			m_onEvents.add(pos, on);
+			
+			if (cur != null) {
+				setChildElement(null, on,
+							cur.getDOMElement());
+			} else {
+				org.w3c.dom.Element insertBefore=null;
+				
+				if (m_onAlarms.size() > 0) {
+					insertBefore = m_onAlarms.get(0).getDOMElement();
+				}
+				
+				setChildElement(null, on, insertBefore);
+			}
+		}
+	}
+	
+	/**
+	 * This method removes an 'onEvent' from the grouping
+	 * construct.
+	 * 
+	 * @param on The 'onEvent' to be removed
+	 * @return Whether the 'onEvent' was removed
+	 */
+	public boolean removeOnEvent(OnEvent on) {
+		boolean ret=m_onEvents.remove(on);
+		
+		if (ret) {
+			getDOMElement().removeChild(on.getDOMElement());
+		}
+		
+		return(ret);
+	}
+	
+	/**
+	 * This method returns the list of 'onEvent' associated
+	 * with the grouping construct.
+	 * 
+	 * @return The list of 'onEvent' elements
+	 */
+	public java.util.List<OnEvent> getOnEvents() {
+		return(m_onEvents);
+	}
+
+	/**
+	 * This method adds an 'onAlarm' to the grouping construct.
+	 * 
+	 * @param on The 'onAlarm' to be added
+	 * @param pos The position to add, or -1 if at the end
+	 */
+	public void addOnAlarm(OnAlarm on, int pos) {
+		if (pos == -1 || pos >= m_onAlarms.size()) {
+			m_onAlarms.add(on);
+			
+			setChildElement(null, on, null);
+		} else {
+			
+			OnAlarm cur=m_onAlarms.get(pos);
+			
+			m_onAlarms.add(pos, on);
+			
+			if (cur != null) {
+				setChildElement(null, on,
+							cur.getDOMElement());
+			} else {
+				setChildElement(null, on, null);
+			}
+		}
+	}
+	
+	/**
+	 * This method removes an 'onAlarm' from the grouping
+	 * construct.
+	 * 
+	 * @param on The 'onAlarm' to be removed
+	 * @return Whether the 'onAlarm' was removed
+	 */
+	public boolean removeOnAlarm(OnAlarm on) {
+		boolean ret=m_onAlarms.remove(on);
+		
+		if (ret) {
+			getDOMElement().removeChild(on.getDOMElement());
+		}
+		
+		return(ret);
+	}
+	
+	/**
+	 * This method returns the list of 'onAlarm' associated
+	 * with the grouping construct.
+	 * 
+	 * @return The list of 'onAlarm' elements
+	 */
+	public java.util.List<OnAlarm> getOnAlarms() {
+		return(m_onAlarms);
+	}
+
+	/**
+	 * This method validates the BPEL activity and reports warnings or
+	 * errors to the supplied model listener.
+	 * 
+	 * @param l The model listener
+	 */
+	@Override
+	public void validate(ModelListener l) {
+	}
+	
+	/**
+	 * This method converts the BPEL activity into an equivalent
+	 * behavioural description for conformance checking.
+	 * 
+	 * @param activities The list of activities that will contain
+	 * 				the converted action(s)
+	 * @param context The conversion context
+	 */
+	public void convert(java.util.List<Activity> activities,
+			ConversionContext context) {
+	}
+
+	private java.util.List<OnEvent> m_onEvents=
+					new java.util.Vector<OnEvent>();
+	private java.util.List<OnAlarm> m_onAlarms=
+					new java.util.Vector<OnAlarm>();
+}

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlers.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlers.java	2009-04-10 22:48:28 UTC (rev 579)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlers.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -19,6 +19,7 @@
 
 import java.util.List;
 
+import org.apache.log4j.Logger;
 import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
 import org.jboss.tools.overlord.cdl.bpel.model.ConversionContext;
 import org.scribble.model.Activity;
@@ -42,6 +43,23 @@
 	public FaultHandlers(BPELLanguageModel model,
 					org.w3c.dom.Element activity) {
 		super(model, activity);
+		
+		java.util.List<BPELElement> paths=
+				findChildElements(Catch.class);
+
+		for (int i=0; i < paths.size(); i++) {
+			m_catchPaths.add((Catch)paths.get(i));
+		}
+		
+		paths = findChildElements(CatchAll.class);
+		
+		if (paths.size() > 0) {
+			m_catchAll = (CatchAll)paths.get(0);
+		
+			if (paths.size() > 1) {
+				logger.error("BPEL 'faultHandlers' has multiple 'catchAll' constructs");
+			}
+		}
 	}
 
 	/**
@@ -53,9 +71,69 @@
 		super(model, FAULTHANDLERS);
 	}
 
+	/**
+	 * This method adds a 'catch' path.
+	 * 
+	 * @param act The 'catch' path
+	 */
+	public void addCatch(Catch act) {
+		m_catchPaths.add(act);
+
+		org.w3c.dom.Element insertBefore=null;
+		
+		if (m_catchAll != null) {
+			insertBefore = m_catchAll.getDOMElement();
+		}
+		
+		setChildElement(null, act,
+						insertBefore);
+	}
+	
+	/**
+	 * This method returns the list of 'catch' paths.
+	 * 
+	 * @return The list of 'catch' paths
+	 */
+	public java.util.List<Catch> getCatchPaths() {
+		return(m_catchPaths);
+	}
+	
+	/**
+	 * This method sets the 'catchAll' path.
+	 * 
+	 * @param act The 'catchAll' path
+	 */
+	public void setCatchAll(CatchAll act) {
+		org.w3c.dom.Element existingElem=null;
+		
+		if (m_catchAll != null) {
+			existingElem = m_catchAll.getDOMElement();
+		}
+
+		m_catchAll = act;
+		
+		setChildElement(existingElem, act,
+						null);
+	}
+	
+	/**
+	 * This method returns the 'catchAll' path.
+	 * 
+	 * @return The 'catchAll' path
+	 */
+	public CatchAll getCatchAll() {
+		return(m_catchAll);
+	}
+
 	@Override
 	public void convert(List<Activity> activities, ConversionContext context) {
 		// TODO Auto-generated method stub
 		
 	}
+
+	private static Logger logger=Logger.getLogger(FaultHandlers.class);
+	
+	private CatchAll m_catchAll=null;
+	private java.util.List<Catch> m_catchPaths=
+				new java.util.Vector<Catch>();
 }

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnEvent.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnEvent.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnEvent.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,178 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import java.util.List;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.ConversionContext;
+import org.scribble.model.Activity;
+
+/**
+ * This class represents the 'onEvent' construct contained
+ * within the 'EventHandler' element.
+ */
+public class OnEvent extends BPELElement {
+
+	private static final long serialVersionUID = -2444989267977027500L;
+
+	private static final String PARTNER_LINK = "partnerLink";
+	private static final String PORT_TYPE = "portType";
+	private static final String OPERATION = "operation";
+	private static final String VARIABLE = "variable";
+
+	public static final String ONEVENT="onEvent";
+	
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 * @param activity The XML configuration details for the element
+	 */
+	public OnEvent(BPELLanguageModel model,
+					org.w3c.dom.Element activity) {
+		super(model, activity);
+		
+		BPELElement elem=findChildActivity();
+		
+		if (elem instanceof Scope) {
+			m_scope = (Scope)elem;
+		}
+	}
+
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 */
+	public OnEvent(BPELLanguageModel model) {
+		super(model, ONEVENT);
+	}
+
+	/**
+	 * This method sets the operation.
+	 * 
+	 * @param op The operation
+	 */
+	public void setOperation(String op) {		
+		getDOMElement().setAttribute(OPERATION, op);
+	}
+	
+	/**
+	 * This method returns the operation.
+	 * 
+	 * @return The operation
+	 */
+	public String getOperation() {
+		return(getDOMElement().getAttribute(OPERATION));
+	}
+
+	/**
+	 * This method sets the partner link.
+	 * 
+	 * @param pl The partner link
+	 */
+	public void setPartnerLink(String pl) {		
+		getDOMElement().setAttribute(PARTNER_LINK, pl);
+	}
+	
+	/**
+	 * This method returns the partner link.
+	 * 
+	 * @return The partner link
+	 */
+	public String getPartnerLink() {
+		return(getDOMElement().getAttribute(PARTNER_LINK));
+	}
+
+	/**
+	 * This method sets the port type.
+	 * 
+	 * @param pt The port type
+	 */
+	public void setPortType(String pt) {		
+		getDOMElement().setAttribute(PORT_TYPE, pt);
+	}
+	
+	/**
+	 * This method returns the port type.
+	 * 
+	 * @return The port type
+	 */
+	public String getPortType() {
+		return(getDOMElement().getAttribute(PORT_TYPE));
+	}
+
+	/**
+	 * This method sets the variable.
+	 * 
+	 * @param var The variable
+	 */
+	public void setVariable(String var) {		
+		getDOMElement().setAttribute(VARIABLE, var);
+	}
+	
+	/**
+	 * This method returns the variable.
+	 * 
+	 * @return The variable
+	 */
+	public String getVariable() {
+		return(getDOMElement().getAttribute(VARIABLE));
+	}
+
+	/**
+	 * This method sets the scope associated with
+	 * the 'onEvent' construct.
+	 * 
+	 * @param scope The scope
+	 */
+	public void setScope(Scope scope) {
+		m_scope = scope;
+		
+		BPELElement existing=findChildActivity();
+		org.w3c.dom.Element existingElem=null;
+		
+		if (existing != null) {
+			existingElem = existing.getDOMElement();
+		}
+
+		org.w3c.dom.Element insertBefore=null;
+		
+		setChildElement(existingElem, scope,
+						insertBefore);
+	}
+	
+	/**
+	 * This method returns the scope associated with
+	 * the 'onEvent' construct.
+	 * 
+	 * @return The scope
+	 */
+	public Scope getScope() {
+		return(m_scope);
+	}
+	
+	@Override
+	public void convert(List<Activity> activities, ConversionContext context) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	private Scope m_scope;
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLink.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLink.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLink.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,137 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import java.util.List;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.ConversionContext;
+import org.scribble.model.Activity;
+
+/**
+ * This class represents the 'partnerLink' construct.
+ */
+public class PartnerLink extends BPELElement {
+
+	private static final long serialVersionUID = 8342639172267763736L;
+
+	private static final String NAME = "name";
+	private static final String PARTNER_LINK_TYPE = "partnerLinkType";
+	private static final String MY_ROLE = "myRole";
+	private static final String PARTNER_ROLE = "partnerRole";
+
+	public static final String PARTNERLINK="partnerLink";
+	
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 * @param activity The XML configuration details for the element
+	 */
+	public PartnerLink(BPELLanguageModel model,
+					org.w3c.dom.Element activity) {
+		super(model, activity);
+	}
+
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 */
+	public PartnerLink(BPELLanguageModel model) {
+		super(model, PARTNERLINK);
+	}
+
+	/**
+	 * This method sets the name.
+	 * 
+	 * @param name The name
+	 */
+	public void setName(String name) {		
+		getDOMElement().setAttribute(NAME, name);
+	}
+	
+	/**
+	 * This method returns the name.
+	 * 
+	 * @return The name
+	 */
+	public String getName() {
+		return(getDOMElement().getAttribute(NAME));
+	}
+
+	/**
+	 * This method sets the partner link type.
+	 * 
+	 * @param pl The partner link type
+	 */
+	public void setPartnerLinkType(String pl) {		
+		getDOMElement().setAttribute(PARTNER_LINK_TYPE, pl);
+	}
+	
+	/**
+	 * This method returns the partner link type.
+	 * 
+	 * @return The partner link type
+	 */
+	public String getPartnerLinkType() {
+		return(getDOMElement().getAttribute(PARTNER_LINK_TYPE));
+	}
+
+	/**
+	 * This method sets my role.
+	 * 
+	 * @param role My role
+	 */
+	public void setMyRole(String role) {		
+		getDOMElement().setAttribute(MY_ROLE, role);
+	}
+	
+	/**
+	 * This method returns my role.
+	 * 
+	 * @return My role
+	 */
+	public String getMyRole() {
+		return(getDOMElement().getAttribute(MY_ROLE));
+	}
+
+	/**
+	 * This method sets partner role.
+	 * 
+	 * @param role Partner role
+	 */
+	public void setPartnerRole(String role) {		
+		getDOMElement().setAttribute(PARTNER_ROLE, role);
+	}
+	
+	/**
+	 * This method returns partner role.
+	 * 
+	 * @return Partner role
+	 */
+	public String getPartnerRole() {
+		return(getDOMElement().getAttribute(PARTNER_ROLE));
+	}
+
+	@Override
+	public void convert(List<Activity> activities, ConversionContext context) {
+		// TODO Auto-generated method stub
+		
+	}
+}

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java	2009-04-10 22:48:28 UTC (rev 579)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -45,21 +45,53 @@
 		super(model, activity);
 		
 		m_partnerLinksElem = findChildElement("partnerLinks");
+		
+		if (m_partnerLinksElem != null) {
+			java.util.List<BPELElement> elems=
+					findChildElements(m_partnerLinksElem,
+							PartnerLink.class);
+
+			for (int i=0; i < elems.size(); i++) {
+				m_partnerLinks.add((PartnerLink)elems.get(i));
+			}
+		}
+		
 		m_variablesElem = findChildElement("variables");
+
+		if (m_variablesElem != null) {
+			java.util.List<BPELElement> elems=
+					findChildElements(m_variablesElem,
+							Variable.class);
+
+			for (int i=0; i < elems.size(); i++) {
+				m_variables.add((Variable)elems.get(i));
+			}
+		}
+		
 		m_messageExchangesElem = findChildElement("messageExchanges");
 		m_correlationSetsElem = findChildElement("correlationSets");
-		m_eventHandlersElem = findChildElement("eventHandlers");
-		m_terminationHandlerElem = findChildElement("terminationHandler");
 		
-		org.w3c.dom.Element ch=findChildElement(CompensationHandler.COMPENSATIONHANDLER);
-		if (ch != null) {
-			m_compensationHandler = new CompensationHandler(model, ch);
+		org.w3c.dom.Element ehs=findChildElement(EventHandlers.EVENTHANDLERS);
+		if (ehs != null) {
+			m_eventHandlers = new EventHandlers(model, ehs);
 		}
 		
 		org.w3c.dom.Element fhs=findChildElement(FaultHandlers.FAULTHANDLERS);
 		if (fhs != null) {
 			m_faultHandlers = new FaultHandlers(model, fhs);
 		}
+		
+		org.w3c.dom.Element ch=findChildElement(CompensationHandler.COMPENSATIONHANDLER);
+		if (ch != null) {
+			m_compensationHandler = new CompensationHandler(model, ch);
+		}
+		
+		org.w3c.dom.Element th=findChildElement(TerminationHandler.TERMINATIONHANDLER);
+		if (th != null) {
+			m_terminationHandler = new TerminationHandler(model, th);
+		}
+		
+		m_activity = findChildActivity();
 	}
 
 	/**
@@ -126,7 +158,7 @@
 			}
 		}
 		
-		if (pos == -1 && pos < m_variables.size()) {
+		if (pos == -1 || pos >= m_variables.size()) {
 			m_variables.add(var);
 			
 			setChildElement(m_variablesElem, null, var, null);
@@ -152,17 +184,15 @@
 	 * @param act The activity to be removed
 	 * @return Whether the activity was removed
 	 */
-	/*
-	public boolean removeActivity(BPELActivity act) {
-		boolean ret=m_activities.remove(act);
+	public boolean removeVariable(Variable var) {
+		boolean ret=m_variables.remove(var);
 		
 		if (ret) {
-			getDOMElement().removeChild(act.getDOMElement());
+			m_variablesElem.removeChild(var.getDOMElement());
 		}
 		
 		return(ret);
 	}
-	*/
 	
 	/**
 	 * This method returns the list of variables.
@@ -174,6 +204,102 @@
 	}
 	
 	/**
+	 * This method adds a partner link to the scope.
+	 * 
+	 * @param pl The partner link to be added
+	 * @param pos The position to add, or -1 if at the end
+	 */
+	public void addPartnerLink(PartnerLink pl, int pos) {
+		
+		if (m_partnerLinksElem == null) {
+			m_partnerLinksElem = getDOMElement().getOwnerDocument().
+				createElementNS(BPEL_NS, "partnerLinks");
+			
+			// Add to parent
+			org.w3c.dom.Element insertBefore=
+					findChildElement("messageExchanges");
+
+			if (insertBefore == null) {
+				insertBefore = findChildElement("correlationSets");
+			}
+			
+			if (insertBefore == null) {
+				insertBefore = findChildElement("eventHandlers");
+			}
+			
+			if (insertBefore == null) {
+				insertBefore = findChildElement("faultHandlers");
+			}
+			
+			if (insertBefore == null) {
+				insertBefore = findChildElement("compensationHandler");
+			}
+			
+			if (insertBefore == null) {
+				insertBefore = findChildElement("terminationHandler");
+			}
+			
+			if (insertBefore == null) {
+				BPELElement elem=findChildActivity();
+				
+				if (elem != null) {
+					insertBefore = elem.getDOMElement();
+				}
+			}
+			
+			if (insertBefore != null) {
+				getDOMElement().insertBefore(m_partnerLinksElem, insertBefore);
+			} else {
+				getDOMElement().appendChild(m_partnerLinksElem);
+			}
+		}
+		
+		if (pos == -1 || pos >= m_partnerLinks.size()) {
+			m_partnerLinks.add(pl);
+			
+			setChildElement(m_partnerLinksElem, null, pl, null);
+		} else {
+			
+			PartnerLink cur=m_partnerLinks.get(pos);
+			
+			m_partnerLinks.add(pos, pl);
+			
+			if (cur != null) {
+				setChildElement(m_partnerLinksElem, null, pl,
+							cur.getDOMElement());
+			} else {
+				setChildElement(m_partnerLinksElem, null, pl, null);
+			}
+		}
+	}
+	
+	/**
+	 * This method removes a partner link from the grouping
+	 * construct.
+	 * 
+	 * @param pl The partner link to be removed
+	 * @return Whether the partner link was removed
+	 */
+	public boolean removePartnerLink(PartnerLink pl) {
+		boolean ret=m_partnerLinks.remove(pl);
+		
+		if (ret) {
+			m_partnerLinksElem.removeChild(pl.getDOMElement());
+		}
+		
+		return(ret);
+	}
+	
+	/**
+	 * This method returns the list of partner links.
+	 * 
+	 * @return The partner links
+	 */
+	public java.util.List<PartnerLink> getPartnerLinks() {
+		return(m_partnerLinks);
+	}
+	
+	/**
 	 * This method sets the activity associated with
 	 * the 'else' construct.
 	 * 
@@ -206,6 +332,100 @@
 	}
 	
 	/**
+	 * This method sets the 'eventHandlers' path.
+	 * 
+	 * @param elem The 'eventHandlers' path
+	 */
+	public void setEventHandlers(EventHandlers elem) {
+		org.w3c.dom.Element existingElem=null;
+		
+		if (m_eventHandlers != null) {
+			existingElem = m_eventHandlers.getDOMElement();
+		}
+
+		m_eventHandlers = elem;
+		
+		org.w3c.dom.Element insertBefore=null;
+		
+		if (insertBefore == null) {
+			insertBefore = findChildElement("faultHandlers");
+		}
+
+		if (insertBefore == null) {
+			insertBefore = findChildElement("compensationHandler");
+		}
+
+		if (insertBefore == null) {
+			insertBefore = findChildElement("terminationHandler");
+		}
+		
+		if (insertBefore == null) {
+			BPELElement act=findChildActivity();
+			
+			if (elem != null) {
+				insertBefore = act.getDOMElement();
+			}
+		}
+
+		setChildElement(existingElem, elem,
+						insertBefore);
+	}
+	
+	/**
+	 * This method returns the 'eventHandlers' path.
+	 * 
+	 * @return The 'eventHandlers' path
+	 */
+	public EventHandlers getEventHandlers() {
+		return(m_eventHandlers);
+	}
+	
+	/**
+	 * This method sets the 'faultHandlers' path.
+	 * 
+	 * @param elem The 'faultHandlers' path
+	 */
+	public void setFaultHandlers(FaultHandlers elem) {
+		org.w3c.dom.Element existingElem=null;
+		
+		if (m_faultHandlers != null) {
+			existingElem = m_faultHandlers.getDOMElement();
+		}
+
+		m_faultHandlers = elem;
+		
+		org.w3c.dom.Element insertBefore=null;
+		
+		if (insertBefore == null) {
+			insertBefore = findChildElement("compensationHandler");
+		}
+
+		if (insertBefore == null) {
+			insertBefore = findChildElement("terminationHandler");
+		}
+		
+		if (insertBefore == null) {
+			BPELElement act=findChildActivity();
+			
+			if (elem != null) {
+				insertBefore = act.getDOMElement();
+			}
+		}
+
+		setChildElement(existingElem, elem,
+				insertBefore);
+	}
+	
+	/**
+	 * This method returns the 'faultHandlers' path.
+	 * 
+	 * @return The 'faultHandlers' path
+	 */
+	public FaultHandlers getFaultHandlers() {
+		return(m_faultHandlers);
+	}
+	
+	/**
 	 * This method sets the 'compensationHandler' path.
 	 * 
 	 * @param elem The 'compensationHandler' path
@@ -219,8 +439,22 @@
 
 		m_compensationHandler = elem;
 		
+		org.w3c.dom.Element insertBefore=null;
+		
+		if (insertBefore == null) {
+			insertBefore = findChildElement("terminationHandler");
+		}
+		
+		if (insertBefore == null) {
+			BPELElement act=findChildActivity();
+			
+			if (elem != null) {
+				insertBefore = act.getDOMElement();
+			}
+		}
+
 		setChildElement(existingElem, elem,
-						null);
+				insertBefore);
 	}
 	
 	/**
@@ -233,6 +467,43 @@
 	}
 	
 	/**
+	 * This method sets the 'terminationHandler' path.
+	 * 
+	 * @param elem The 'terminationHandler' path
+	 */
+	public void setTerminationHandler(TerminationHandler elem) {
+		org.w3c.dom.Element existingElem=null;
+		
+		if (m_terminationHandler != null) {
+			existingElem = m_terminationHandler.getDOMElement();
+		}
+
+		m_terminationHandler = elem;
+		
+		org.w3c.dom.Element insertBefore=null;
+		
+		if (insertBefore == null) {
+			BPELElement act=findChildActivity();
+			
+			if (elem != null) {
+				insertBefore = act.getDOMElement();
+			}
+		}
+
+		setChildElement(existingElem, elem,
+				insertBefore);
+	}
+	
+	/**
+	 * This method returns the 'terminationHandler' path.
+	 * 
+	 * @return The 'terminationHandler' path
+	 */
+	public TerminationHandler getTerminationHandler() {
+		return(m_terminationHandler);
+	}
+	
+	/**
 	 * This method validates the BPEL activity and reports warnings or
 	 * errors to the supplied model listener.
 	 * 
@@ -258,10 +529,11 @@
 	private org.w3c.dom.Element m_variablesElem=null;
 	private org.w3c.dom.Element m_messageExchangesElem=null;
 	private org.w3c.dom.Element m_correlationSetsElem=null;
-	private org.w3c.dom.Element m_eventHandlersElem=null;
-	private org.w3c.dom.Element m_terminationHandlerElem=null;
+	private java.util.List<PartnerLink> m_partnerLinks=new java.util.Vector<PartnerLink>();
 	private java.util.List<Variable> m_variables=new java.util.Vector<Variable>();
+	private EventHandlers m_eventHandlers=null;
+	private FaultHandlers m_faultHandlers=null;
 	private CompensationHandler m_compensationHandler=null;
-	private FaultHandlers m_faultHandlers=null;
+	private TerminationHandler m_terminationHandler=null;
 	private BPELElement m_activity;
 }

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandler.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandler.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandler.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import java.util.List;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.ConversionContext;
+import org.scribble.model.Activity;
+
+/**
+ * This class represents the 'terminationHandler' construct contained
+ * within the 'scope' activity.
+ */
+public class TerminationHandler extends BPELElement {
+
+	private static final long serialVersionUID = 7316551859410369824L;
+
+	public static final String TERMINATIONHANDLER="terminationHandler";
+	
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 * @param activity The XML configuration details for the element
+	 */
+	public TerminationHandler(BPELLanguageModel model,
+					org.w3c.dom.Element activity) {
+		super(model, activity);
+		
+		m_activity = findChildActivity();
+	}
+
+	/**
+	 * The constructor for the element.
+	 * 
+	 * @param model The BPEL model
+	 */
+	public TerminationHandler(BPELLanguageModel model) {
+		super(model, TERMINATIONHANDLER);
+	}
+
+	/**
+	 * This method sets the activity associated with
+	 * the 'else' construct.
+	 * 
+	 * @param act The activity
+	 */
+	public void setActivity(BPELElement act) {
+		m_activity = act;
+		
+		BPELElement existing=findChildActivity();
+		org.w3c.dom.Element existingElem=null;
+		
+		if (existing != null) {
+			existingElem = existing.getDOMElement();
+		}
+
+		org.w3c.dom.Element insertBefore=null;
+		
+		setChildElement(existingElem, act,
+						insertBefore);
+	}
+	
+	/**
+	 * This method returns the activity associated with
+	 * the 'else' construct.
+	 * 
+	 * @return The activity
+	 */
+	public BPELElement getActivity() {
+		return(m_activity);
+	}
+	
+	@Override
+	public void convert(List<Activity> activities, ConversionContext context) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	private BPELElement m_activity;
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAllTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAllTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchAllTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.component.Else;
+import org.jboss.tools.overlord.cdl.bpel.model.component.Sequence;
+
+import junit.framework.TestCase;
+
+public class CatchAllTest extends TestCase {
+
+	public void testIsActivity() {
+		CatchAll act=new CatchAll(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testBuildCatchAll() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<catchAll xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">" +
+				"<sequence/></catchAll>";
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+			
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		CatchAll construct=new CatchAll(model, elem);		
+		
+		if (construct.getActivity() == null) {
+			fail("No activity");
+		}
+		
+		if ((construct.getActivity() instanceof Sequence) == false) {
+			fail("Activity is not a sequence");
+		}
+	}
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/CatchTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.component.Sequence;
+
+import junit.framework.TestCase;
+
+public class CatchTest extends TestCase {
+
+	public void testIsActivity() {
+		Catch act=new Catch(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testBuildCatchAll() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String var="testVar";
+		String fault="testFault";
+
+		String xml="<catch xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\" " +
+			       "faultVariable=\""+var+"\" "+
+			       "faultName=\""+fault+"\" >"+
+				"<sequence/></catch>";
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+			
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Catch construct=new Catch(model, elem);		
+		
+		if (construct.getActivity() == null) {
+			fail("No activity");
+		}
+		
+		if ((construct.getActivity() instanceof Sequence) == false) {
+			fail("Activity is not a sequence");
+		}
+	}
+
+	public void testGetFaultVariable() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String var="testVariable";
+		
+		Catch component=new Catch(model);		
+		
+		component.setFaultVariable(var);
+		
+		if (component.getFaultVariable().equals(var) == false) {
+			fail("Fault Variable not correct, expecting '"+var+"': "+
+							component.getFaultVariable());
+		}
+	}
+
+	public void testGetFaultName() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String fault="testFault";
+		
+		Catch component=new Catch(model);		
+		
+		component.setFaultName(fault);
+		
+		if (component.getFaultName().equals(fault) == false) {
+			fail("Fault name not correct, expecting '"+fault+"': "+
+							component.getFaultName());
+		}
+	}
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlersTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlersTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/EventHandlersTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,216 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+
+import junit.framework.TestCase;
+
+public class EventHandlersTest extends TestCase {
+
+	public void testIsActivity() {
+		EventHandlers act=new EventHandlers(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testEventHandlersFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<eventHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       "<onEvent/>"+
+		       "<onEvent/>"+
+		       "<onAlarm/>"+
+		       "</eventHandlers>";
+		
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		EventHandlers component=new EventHandlers(model, elem);		
+		
+		if (component.getOnEvents().size() != 2) {
+			fail("Expecting 2 onEvent: "+
+							component.getOnEvents().size());
+		}
+		
+		if (component.getOnAlarms().size() != 1) {
+			fail("Expecting 1 onAlarm: "+
+							component.getOnAlarms().size());
+		}
+	}
+
+	public void testAddOnMessageToEventHandlersInitFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<eventHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		"<targets/>"+
+	       		"<onAlarm/>"+
+	       		"<onAlarm/>"+
+	       		"</eventHandlers>";
+		
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		EventHandlers component=new EventHandlers(model, elem);		
+		
+		if (component.getOnAlarms().size() != 2) {
+			fail("Expecting 2 onAlarms: "+
+							component.getOnAlarms().size());
+		}
+		
+		if (component.getOnEvents().size() != 0) {
+			fail("Expecting 0 onEvents: "+
+							component.getOnEvents().size());
+		}
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 3) {
+			fail("Three child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+
+		OnEvent sub=new OnEvent(model);
+		
+		component.addOnEvent(sub, 0);
+		
+		if (component.getOnEvents().size() != 1) {
+			fail("Expecting 1 onEvent: "+
+							component.getOnEvents().size());
+		}
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 4) {
+			fail("Four child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+
+		if (component.getDOMElement().getChildNodes().item(1).
+				getLocalName().equals(OnEvent.ONEVENT) == false) {
+			fail("Second element was not a 'onEvent': "+
+					component.getDOMElement().getChildNodes().item(1).
+									getLocalName());
+		}
+	}
+
+
+	public void testAddOnAlarmToEventHandlersInitFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<eventHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		"<targets/>"+
+	       		"<onEvent/>"+
+	       		"<onEvent/>"+
+	       		"</eventHandlers>";
+		
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		EventHandlers component=new EventHandlers(model, elem);		
+		
+		if (component.getOnEvents().size() != 2) {
+			fail("Expecting 2 onEvents: "+
+							component.getOnEvents().size());
+		}
+		
+		if (component.getOnAlarms().size() != 0) {
+			fail("Expecting 0 onAlarms: "+
+							component.getOnAlarms().size());
+		}
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 3) {
+			fail("Three child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+
+		OnAlarm sub=new OnAlarm(model);
+		
+		component.addOnAlarm(sub, 0);
+		
+		if (component.getOnAlarms().size() != 1) {
+			fail("Expecting 1 onAlarm: "+
+							component.getOnAlarms().size());
+		}
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 4) {
+			fail("Four child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+
+		if (component.getDOMElement().getChildNodes().item(3).
+				getLocalName().equals(OnAlarm.ONALARM) == false) {
+			fail("Second element was not a 'onAlarm': "+
+					component.getDOMElement().getChildNodes().item(3).
+									getLocalName());
+		}
+	}
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlersTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlersTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/FaultHandlersTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,230 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+
+import junit.framework.TestCase;
+
+public class FaultHandlersTest extends TestCase {
+
+	public void testIsActivity() {
+		FaultHandlers act=new FaultHandlers(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testFaultHandlersCatchFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<faultHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<catch/>"+
+				"<catch/>"+
+		       "</faultHandlers>";
+		
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		FaultHandlers component=new FaultHandlers(model, elem);		
+		
+		if (component.getCatchAll() != null) {
+			fail("CatchAll path should be null");
+		}
+		
+		if (component.getCatchPaths().size() != 2) {
+			fail("Should have 2 catch paths: "+component.getCatchPaths().size());
+		}
+	}
+
+	public void testFaultHandlersCatchAllFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<faultHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<catchAll/>"+
+		       "</faultHandlers>";
+		
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		FaultHandlers component=new FaultHandlers(model, elem);		
+		
+		if (component.getCatchAll() == null) {
+			fail("CatchAll path should NOT be null");
+		}
+		
+		if (component.getCatchPaths().size() != 0) {
+			fail("Should have 0 catch paths: "+component.getCatchPaths().size());
+		}
+	}
+	
+	public void testAddCatch() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<faultHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       "</faultHandlers>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		FaultHandlers component=new FaultHandlers(model, ifelem);
+
+		if (component.getCatchPaths().size() != 0) {
+			fail("Should be no catch paths");
+		}
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 0) {
+			fail("Zero child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+		
+		Sequence seq=new Sequence(model);
+		Catch elem=new Catch(model);
+		elem.setActivity(seq);
+		
+		component.addCatch(elem);
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 1) {
+			fail("One child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+		
+		if (component.getDOMElement().getChildNodes().item(0).
+				getLocalName().equals(Catch.CATCH) == false) {
+			fail("First element was not a catch: "+
+					component.getDOMElement().getChildNodes().item(0).
+									getLocalName());
+		}
+	}	
+	
+	public void testAddCatchInsertBeforeCatchAll() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<faultHandlers xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       "<catchAll>"+
+		       "<sequence/>"+
+		       "</catchAll>"+
+		       "</faultHandlers>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		FaultHandlers component=new FaultHandlers(model, ifelem);
+
+		if (component.getCatchPaths().size() != 0) {
+			fail("Should be no catch paths");
+		}
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 1) {
+			fail("One child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+		
+		Sequence seq=new Sequence(model);
+		Catch catchElem=new Catch(model);
+		catchElem.setActivity(seq);
+		
+		component.addCatch(catchElem);
+		
+		if (component.getDOMElement().getChildNodes().getLength() != 2) {
+			fail("Two child elements expected: "+
+					component.getDOMElement().getChildNodes().getLength());
+		}
+		
+		if (component.getDOMElement().getChildNodes().item(0).
+				getLocalName().equals(Catch.CATCH) == false) {
+			fail("First element was not a catch: "+
+					component.getDOMElement().getChildNodes().item(0).
+									getLocalName());
+		}
+	}	
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/OnEventTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/OnEventTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/OnEventTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,158 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+
+import junit.framework.TestCase;
+
+public class OnEventTest extends TestCase {
+
+	public void testIsActivity() {
+		OnEvent act=new OnEvent(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testBuildEHOnEvent() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String var="testVar";
+		String op="testOp";
+		String portType="testPortType";
+		String partnerLink="testPartnerLink";
+
+		String xml="<onEvent xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\" " +
+			       "operation=\""+op+"\" "+
+			       "partnerLink=\""+partnerLink+"\" "+
+			       "portType=\""+portType+"\" "+
+	       			"variable=\""+var+"\" "+
+	       			" >"+
+				"<scope/></onEvent>";
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+			
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		OnEvent component=new OnEvent(model, elem);		
+		
+		if (component.getScope() == null) {
+			fail("No scope");
+		}
+		
+		if (component.getVariable().equals(var) == false) {
+			fail("Variable not correct, expecting '"+var+"': "+
+							component.getVariable());
+		}
+
+		if (component.getOperation().equals(op) == false) {
+			fail("Operation not correct, expecting '"+op+"': "+
+							component.getOperation());
+		}
+		
+		if (component.getPartnerLink().equals(partnerLink) == false) {
+			fail("PartnerLink not correct, expecting '"+partnerLink+"': "+
+							component.getPartnerLink());
+		}
+		
+		if (component.getPortType().equals(portType) == false) {
+			fail("Port type not correct, expecting '"+portType+"': "+
+							component.getPortType());
+		}
+	}
+
+	public void testGetVariable() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String var="testVariable";
+		
+		OnEvent component=new OnEvent(model);		
+		
+		component.setVariable(var);
+		
+		if (component.getVariable().equals(var) == false) {
+			fail("Variable not correct, expecting '"+var+"': "+
+							component.getVariable());
+		}
+	}
+
+	public void testGetOperation() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String op="testOp";
+		
+		OnEvent component=new OnEvent(model);		
+		
+		component.setOperation(op);
+		
+		if (component.getOperation().equals(op) == false) {
+			fail("Operation not correct, expecting '"+op+"': "+
+							component.getOperation());
+		}
+	}
+	
+	public void testGetPortType() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String pt="testPortType";
+		
+		OnEvent component=new OnEvent(model);		
+		
+		component.setPortType(pt);
+		
+		if (component.getPortType().equals(pt) == false) {
+			fail("Port type not correct, expecting '"+pt+"': "+
+							component.getPortType());
+		}
+	}
+	
+	public void testGetPartnerLink() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String pl="testPartnerLink";
+		
+		OnEvent component=new OnEvent(model);		
+		
+		component.setPartnerLink(pl);
+		
+		if (component.getPartnerLink().equals(pl) == false) {
+			fail("Partner link not correct, expecting '"+pl+"': "+
+							component.getPartnerLink());
+		}
+	}
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLinkTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLinkTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/PartnerLinkTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,153 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+
+import junit.framework.TestCase;
+
+public class PartnerLinkTest extends TestCase {
+
+	public void testIsActivity() {
+		PartnerLink act=new PartnerLink(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testBuildPartnerLink() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String partnerRole="testPartnerRole";
+		String name="testName";
+		String myRole="testMyRole";
+		String partnerLinkType="testPartnerLinkType";
+
+		String xml="<partnerLink xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\" " +
+			       "name=\""+name+"\" "+
+			       "partnerLinkType=\""+partnerLinkType+"\" "+
+			       "myRole=\""+myRole+"\" "+
+	       			"partnerRole=\""+partnerRole+"\" "+
+	       			" />";
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+			
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		PartnerLink component=new PartnerLink(model, elem);		
+		
+		if (component.getPartnerRole().equals(partnerRole) == false) {
+			fail("PartnerRole not correct, expecting '"+partnerRole+"': "+
+							component.getPartnerRole());
+		}
+
+		if (component.getName().equals(name) == false) {
+			fail("Name not correct, expecting '"+name+"': "+
+							component.getName());
+		}
+		
+		if (component.getPartnerLinkType().equals(partnerLinkType) == false) {
+			fail("PartnerLinkType not correct, expecting '"+partnerLinkType+"': "+
+							component.getPartnerLinkType());
+		}
+		
+		if (component.getMyRole().equals(myRole) == false) {
+			fail("MyRole not correct, expecting '"+myRole+"': "+
+							component.getMyRole());
+		}
+	}
+
+	public void testGetName() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String name="testName";
+		
+		PartnerLink component=new PartnerLink(model);		
+		
+		component.setName(name);
+		
+		if (component.getName().equals(name) == false) {
+			fail("Name not correct, expecting '"+name+"': "+
+							component.getName());
+		}
+	}
+
+	public void testGetPartnerLinkType() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String plt="testPartnerLinkType";
+		
+		PartnerLink component=new PartnerLink(model);		
+		
+		component.setPartnerLinkType(plt);
+		
+		if (component.getPartnerLinkType().equals(plt) == false) {
+			fail("PartnerLinkType not correct, expecting '"+plt+"': "+
+							component.getPartnerLinkType());
+		}
+	}
+	
+	public void testGetMyRole() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String mr="testMyRole";
+		
+		PartnerLink component=new PartnerLink(model);		
+		
+		component.setMyRole(mr);
+		
+		if (component.getMyRole().equals(mr) == false) {
+			fail("MyRole not correct, expecting '"+mr+"': "+
+							component.getMyRole());
+		}
+	}
+	
+	public void testGetPartnerRole() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String pr="testPartnerRole";
+		
+		PartnerLink component=new PartnerLink(model);		
+		
+		component.setPartnerRole(pr);
+		
+		if (component.getPartnerRole().equals(pr) == false) {
+			fail("PartnerRole not correct, expecting '"+pr+"': "+
+							component.getPartnerRole());
+		}
+	}
+}

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/ScopeTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/ScopeTest.java	2009-04-10 22:48:28 UTC (rev 579)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/ScopeTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -36,14 +36,15 @@
 		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
 
 		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
-				"<partnerLinks/>"+
-				"<variable/>"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<variables><variable/></variables>"+
 				"<messageExchanges/>"+
 				"<correlationSets/>"+
 				"<eventHandlers/>"+
 				"<faultHandlers/>"+
 				"<compensationHandler/>"+
 				"<terminationHandler/>"+
+				"<sequence/>"+
 	       "</scope>";
 		
 		org.w3c.dom.Element elem=null;
@@ -67,6 +68,419 @@
 			fail("Failed to convert to doc");
 		}
 		
-		Scope component=new Scope(model, elem);		
+		Scope component=new Scope(model, elem);
+		
+		if (component.getPartnerLinks().size() != 1) {
+			fail("Expecting 1 partner link: "+component.getPartnerLinks().size());
+		}
+		
+		if (component.getVariables().size() != 1) {
+			fail("Expecting 1 variable: "+component.getVariables().size());
+		}
+		
+		if (component.getActivity() == null) {
+			fail("Activity not defined");
+		}
+		
+		if (component.getCompensationHandler() == null) {
+			fail("Compensation handler not defined");
+		}
+		
+		if (component.getEventHandlers() == null) {
+			fail("Event handlers not defined");
+		}
+		
+		if (component.getFaultHandlers() == null) {
+			fail("Fault handlers not defined");
+		}
+		
+		if (component.getTerminationHandler() == null) {
+			fail("Termination handler not defined");
+		}
 	}
+	
+	public void testAddVariable() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<eventHandlers/>"+
+				"<faultHandlers/>"+
+				"<compensationHandler/>"+
+				"<terminationHandler/>"+
+				"<sequence/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, ifelem);
+
+		if (component.getVariables().size() != 0) {
+			fail("Should be no variables");
+		}
+		
+		Variable var=new Variable(model);
+		component.addVariable(var, 0);
+		
+		if (component.getVariables().size() != 1) {
+			fail("Should be one variable: "+component.getVariables().size());
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(0).getLocalName().equals("variables") == false) {
+			fail("Child 0 not as expected: "+component.getDOMElement().getChildNodes().
+					item(0).getLocalName());
+		}
+	}	
+	
+	public void testAddPartnerLink() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<variables><variable/></variables>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<eventHandlers/>"+
+				"<faultHandlers/>"+
+				"<compensationHandler/>"+
+				"<terminationHandler/>"+
+				"<sequence/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, elem);
+
+		if (component.getPartnerLinks().size() != 0) {
+			fail("Should be no partner links");
+		}
+		
+		PartnerLink pl=new PartnerLink(model);
+		component.addPartnerLink(pl, 0);
+		
+		if (component.getPartnerLinks().size() != 1) {
+			fail("Should be one partner link: "+component.getPartnerLinks().size());
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(1).getLocalName().equals("partnerLinks") == false) {
+			fail("Child 1 not as expected: "+component.getDOMElement().getChildNodes().
+					item(1).getLocalName());
+		}
+	}	
+	
+	public void testSetEventHandlers() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<variables><variable/></variables>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<faultHandlers/>"+
+				"<compensationHandler/>"+
+				"<terminationHandler/>"+
+				"<sequence/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, ifelem);
+
+		if (component.getEventHandlers() != null) {
+			fail("Should be null");
+		}
+		
+		EventHandlers elem=new EventHandlers(model);
+		component.setEventHandlers(elem);
+		
+		if (component.getEventHandlers() == null) {
+			fail("Should NOT be null");
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(4).getLocalName().equals("eventHandlers") == false) {
+			fail("Child 4 not as expected: "+component.getDOMElement().getChildNodes().
+					item(4).getLocalName());
+		}
+	}	
+	
+	public void testSetFaultHandlers() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<variables><variable/></variables>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<eventHandlers/>"+
+				"<compensationHandler/>"+
+				"<terminationHandler/>"+
+				"<sequence/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, ifelem);
+
+		if (component.getFaultHandlers() != null) {
+			fail("Should be null");
+		}
+		
+		FaultHandlers elem=new FaultHandlers(model);
+		component.setFaultHandlers(elem);
+		
+		if (component.getFaultHandlers() == null) {
+			fail("Should NOT be null");
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(5).getLocalName().equals("faultHandlers") == false) {
+			fail("Child 5 not as expected: "+component.getDOMElement().getChildNodes().
+					item(5).getLocalName());
+		}
+	}	
+	
+	public void testSetCompensationHandler() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<variables><variable/></variables>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<eventHandlers/>"+
+				"<faultHandlers/>"+
+				"<terminationHandler/>"+
+				"<sequence/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, ifelem);
+
+		if (component.getCompensationHandler() != null) {
+			fail("Should be null");
+		}
+		
+		CompensationHandler elem=new CompensationHandler(model);
+		component.setCompensationHandler(elem);
+		
+		if (component.getCompensationHandler() == null) {
+			fail("Should NOT be null");
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(6).getLocalName().equals("compensationHandler") == false) {
+			fail("Child 6 not as expected: "+component.getDOMElement().getChildNodes().
+					item(6).getLocalName());
+		}
+	}	
+	
+	public void testSetTerminationHandler() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<variables><variable/></variables>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<eventHandlers/>"+
+				"<faultHandlers/>"+
+				"<compensationHandler/>"+
+				"<sequence/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, ifelem);
+
+		if (component.getTerminationHandler() != null) {
+			fail("Should be null");
+		}
+		
+		TerminationHandler elem=new TerminationHandler(model);
+		component.setTerminationHandler(elem);
+		
+		if (component.getTerminationHandler() == null) {
+			fail("Should NOT be null");
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(7).getLocalName().equals("terminationHandler") == false) {
+			fail("Child 7 not as expected: "+component.getDOMElement().getChildNodes().
+					item(7).getLocalName());
+		}
+	}	
+	
+	public void testSetActivity() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<scope xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+				"<partnerLinks><partnerLink/></partnerLinks>"+
+				"<variables><variable/></variables>"+
+				"<messageExchanges/>"+
+				"<correlationSets/>"+
+				"<eventHandlers/>"+
+				"<faultHandlers/>"+
+				"<compensationHandler/>"+
+				"<terminationHandler/>"+
+		   "</scope>";
+		
+		org.w3c.dom.Element ifelem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			ifelem = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Scope component=new Scope(model, ifelem);
+
+		if (component.getActivity() != null) {
+			fail("Should be null");
+		}
+		
+		Sequence elem=new Sequence(model);
+		component.setActivity(elem);
+		
+		if (component.getActivity() == null) {
+			fail("Should NOT be null");
+		}
+		
+		if (component.getDOMElement().getChildNodes().
+					item(8).getLocalName().equals(Sequence.SEQUENCE) == false) {
+			fail("Child 8 not as expected: "+component.getDOMElement().getChildNodes().
+					item(8).getLocalName());
+		}
+	}	
 }

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandlerTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandlerTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/TerminationHandlerTest.java	2009-04-11 21:37:43 UTC (rev 580)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.bpel.model.component;
+
+import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.DefaultBPELLanguageModel;
+import org.jboss.tools.overlord.cdl.bpel.model.component.Sequence;
+
+import junit.framework.TestCase;
+
+public class TerminationHandlerTest extends TestCase {
+
+	public void testIsActivity() {
+		TerminationHandler act=
+				new TerminationHandler(new DefaultBPELLanguageModel(null));
+		
+		if (act.isActivity() == true) {
+			fail("Should NOT be an activity");
+		}
+	}
+	
+	public void testBuildTerminationHandler() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<terminationHandler xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">" +
+				"<sequence/></terminationHandler>";
+		org.w3c.dom.Element elem=null;
+		
+		try {
+			javax.xml.parsers.DocumentBuilderFactory factory=
+				javax.xml.parsers.DocumentBuilderFactory.newInstance();
+			
+			factory.setNamespaceAware(true);
+			
+			javax.xml.parsers.DocumentBuilder builder=
+						factory.newDocumentBuilder();
+			
+			java.io.InputStream is=new java.io.ByteArrayInputStream(xml.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem = doc.getDocumentElement();
+			
+			is.close();
+			
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		TerminationHandler construct=new TerminationHandler(model, elem);		
+		
+		if (construct.getActivity() == null) {
+			fail("No activity");
+		}
+		
+		if ((construct.getActivity() instanceof Sequence) == false) {
+			fail("Activity is not a sequence");
+		}
+	}
+}




More information about the overlord-commits mailing list