[overlord-commits] Overlord SVN: r572 - 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
Fri Apr 3 18:50:19 EDT 2009


Author: objectiser
Date: 2009-04-03 18:50:19 -0400 (Fri, 03 Apr 2009)
New Revision: 572

Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/If.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/IfTest.java
Log:
Updated 'if' to enable condition to be added after other standard elements, but before any activity, elseif or else elements.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/If.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/If.java	2009-04-03 22:17:52 UTC (rev 571)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/If.java	2009-04-03 22:50:19 UTC (rev 572)
@@ -111,8 +111,18 @@
 	public void setCondition(Condition cond) {
 		m_condition = cond;
 		
+		org.w3c.dom.Element insertBefore=null;
+		
+		if (m_activity != null) {
+			insertBefore = m_activity.getDOMElement();
+		} else if (m_elseIfPaths.size() > 0) {
+			insertBefore = m_elseIfPaths.get(0).getDOMElement();
+		} else if (m_elsePath != null) {
+			insertBefore = m_elsePath.getDOMElement();
+		}
+		
 		setChildElement(findChildElement(Condition.CONDITION),
-				cond.getDOMElement(), getDOMElement().getFirstChild());
+				cond.getDOMElement(), insertBefore);
 	}
 	
 	/**

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/IfTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/IfTest.java	2009-04-03 22:17:52 UTC (rev 571)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/IfTest.java	2009-04-03 22:50:19 UTC (rev 572)
@@ -489,6 +489,64 @@
 		}
 	}	
 	
+	public void testSetConditionInsertBeforeElse() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String xml="<if xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       "<sources/>"+
+		       "<else>"+
+		       "<sequence/>"+
+		       "</else>"+
+		       "</if>";
+		
+		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");
+		}
+		
+		If component=new If(model, ifelem);
+
+		String expr1="Test Expression 1";
+
+		Condition cond=new Condition(model);
+		cond.setExpression(expr1);
+		
+		component.setCondition(cond);
+		
+		String result=component.getCondition().getExpression();
+		
+		if (result == null) {
+			fail("Expression not set");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression not same");
+		}
+		
+		// Check position of condition
+		org.w3c.dom.NodeList nl=component.getDOMElement().getChildNodes();
+		
+		if (nl.item(1).getLocalName().equals(Condition.CONDITION) == false) {
+			fail("Second child not is not condition: "+nl.item(1).getLocalName());
+		}
+	}	
+
 	public void testSetActivityInsertBeforeElseIf() {
 		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
 




More information about the overlord-commits mailing list