[overlord-commits] Overlord SVN: r571 - 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:17:52 EDT 2009


Author: objectiser
Date: 2009-04-03 18:17:52 -0400 (Fri, 03 Apr 2009)
New Revision: 571

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/Wait.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/WaitTest.java
Log:
Added support for wait until/for elements.

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-03 13:56:16 UTC (rev 570)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/BPELElement.java	2009-04-03 22:17:52 UTC (rev 571)
@@ -92,6 +92,15 @@
 	}
 	
 	/**
+	 * This method returns the model.
+	 * 
+	 * @return The model
+	 */
+	protected BPELLanguageModel getModel() {
+		return(m_model);
+	}
+	
+	/**
 	 * This method returns the element associated with
 	 * the supplied name.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Wait.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Wait.java	2009-04-03 13:56:16 UTC (rev 570)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Wait.java	2009-04-03 22:17:52 UTC (rev 571)
@@ -28,6 +28,10 @@
  */
 public class Wait extends BPELActivity {
 
+	private static final String FOR = "for";
+
+	private static final String UNTIL = "until";
+
 	private static final long serialVersionUID = -3934422332929710337L;
 
 	public static final String WAIT = "wait";
@@ -53,6 +57,68 @@
 	}
 
 	/**
+	 * This method sets the 'until' condition.
+	 * 
+	 * @param cond The 'until' condition
+	 */
+	public void setUntil(Condition cond) {
+		setChildElement(findChildElement(UNTIL),
+				cond.getDOMElement(), null);
+		
+		org.w3c.dom.Element elem=findChildElement(FOR);
+		if (elem != null) {
+			getDOMElement().removeChild(elem);
+		}
+	}
+	
+	/**
+	 * This method returns the 'until' condition.
+	 * 
+	 * @return The 'until' condition
+	 */
+	public Condition getUntil() {
+		Condition ret=null;
+		
+		org.w3c.dom.Element elem=findChildElement(UNTIL);
+		if (elem != null) {
+			ret = new Condition(getModel(), elem);
+		}
+		
+		return(ret);
+	}
+
+	/**
+	 * This method sets the 'for' condition.
+	 * 
+	 * @param cond The 'for' condition
+	 */
+	public void setFor(Condition cond) {
+		setChildElement(findChildElement(FOR),
+				cond.getDOMElement(), null);
+		
+		org.w3c.dom.Element elem=findChildElement(UNTIL);
+		if (elem != null) {
+			getDOMElement().removeChild(elem);
+		}
+	}
+	
+	/**
+	 * This method returns the 'for' condition.
+	 * 
+	 * @return The 'for' condition
+	 */
+	public Condition getFor() {
+		Condition ret=null;
+		
+		org.w3c.dom.Element elem=findChildElement(FOR);
+		if (elem != null) {
+			ret = new Condition(getModel(), elem);
+		}
+		
+		return(ret);
+	}
+
+	/**
 	 * This method validates the BPEL activity and reports warnings or
 	 * errors to the supplied model listener.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/WaitTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/WaitTest.java	2009-04-03 13:56:16 UTC (rev 570)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/test/org/jboss/tools/overlord/cdl/bpel/model/component/WaitTest.java	2009-04-03 22:17:52 UTC (rev 571)
@@ -17,6 +17,7 @@
  */
 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;
@@ -31,4 +32,588 @@
 			fail("Should be an activity");
 		}
 	}
+
+	public void testUntilFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		
+		String xml="<wait xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       "<until>"+expr1+"</until>"+
+		       "</wait>";
+		
+		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");
+		}
+		
+		Wait component=new Wait(model, elem);		
+		
+		if (component.getUntil() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getFor() != null) {
+			fail("For condition should is set");
+		}
+		
+		String result=component.getUntil().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+	}
+
+	public void testForFromDOM() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		
+		String xml="<wait xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       "<for>"+expr1+"</for>"+
+		       "</wait>";
+		
+		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");
+		}
+		
+		Wait component=new Wait(model, elem);		
+		
+		if (component.getFor() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getUntil() != null) {
+			fail("For condition should is set");
+		}
+		
+		String result=component.getFor().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+	}
+
+	public void testSetUntilNew() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		
+		String xml="<until xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       expr1+
+		       "</until>";
+		
+		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");
+		}
+		
+		Condition condition=new Condition(model, elem);
+		
+		Wait component=new Wait(model);
+		
+		component.setUntil(condition);
+		
+		if (component.getUntil() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getFor() != null) {
+			fail("For condition should not be set");
+		}
+		
+		String result=component.getUntil().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+	}	
+	
+	public void testSetUntilReplace() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		String expr2="Test Expression 2";
+		
+		String xml1="<until xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr1+
+	       		"</until>";
+	
+		String xml2="<until xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr2+
+	       		"</until>";
+	
+		org.w3c.dom.Element elem1=null;
+		org.w3c.dom.Element elem2=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(xml1.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem1 = doc.getDocumentElement();
+			
+			is.close();
+			
+			is=new java.io.ByteArrayInputStream(xml2.getBytes());
+			
+			doc=builder.parse(is);
+			elem2 = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Condition condition1=new Condition(model, elem1);
+		
+		Wait component=new Wait(model);
+		
+		component.setUntil(condition1);
+		
+		if (component.getUntil() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getFor() != null) {
+			fail("For condition should not be set");
+		}
+		
+		String result=component.getUntil().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression1 is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+
+		Condition condition2=new Condition(model, elem2);
+		
+		component.setUntil(condition2);
+		
+		if (component.getUntil() == null) {
+			fail("Condition not set");
+		}
+
+		if (component.getFor() != null) {
+			fail("For condition should still not be set");
+		}
+		
+		result=component.getUntil().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr2) == false) {
+			fail("Expression2 is not valid: expecting '"+
+					expr2+"' but got '"+result+"'");
+		}
+	}		
+
+	public void testSetForNew() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		
+		String xml="<for xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+		       expr1+
+		       "</for>";
+		
+		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");
+		}
+		
+		Condition condition=new Condition(model, elem);
+		
+		Wait component=new Wait(model);
+		
+		component.setFor(condition);
+		
+		if (component.getFor() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getUntil() != null) {
+			fail("Until condition should not be set");
+		}
+		
+		String result=component.getFor().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+	}	
+	
+	public void testSetForReplace() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		String expr2="Test Expression 2";
+		
+		String xml1="<for xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr1+
+	       		"</for>";
+	
+		String xml2="<for xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr2+
+	       		"</for>";
+	
+		org.w3c.dom.Element elem1=null;
+		org.w3c.dom.Element elem2=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(xml1.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem1 = doc.getDocumentElement();
+			
+			is.close();
+			
+			is=new java.io.ByteArrayInputStream(xml2.getBytes());
+			
+			doc=builder.parse(is);
+			elem2 = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Condition condition1=new Condition(model, elem1);
+		
+		Wait component=new Wait(model);
+		
+		component.setFor(condition1);
+		
+		if (component.getFor() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getUntil() != null) {
+			fail("Until condition should not be set");
+		}
+		
+		String result=component.getFor().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression1 is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+
+		Condition condition2=new Condition(model, elem2);
+		
+		component.setFor(condition2);
+		
+		if (component.getFor() == null) {
+			fail("Condition not set");
+		}
+
+		if (component.getUntil() != null) {
+			fail("Until condition should still not be set");
+		}
+		
+		result=component.getFor().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr2) == false) {
+			fail("Expression2 is not valid: expecting '"+
+					expr2+"' but got '"+result+"'");
+		}
+	}		
+
+	public void testSetForThenUntil() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		String expr2="Test Expression 2";
+		
+		String xml1="<for xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr1+
+	       		"</for>";
+	
+		String xml2="<until xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr2+
+	       		"</until>";
+	
+		org.w3c.dom.Element elem1=null;
+		org.w3c.dom.Element elem2=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(xml1.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem1 = doc.getDocumentElement();
+			
+			is.close();
+			
+			is=new java.io.ByteArrayInputStream(xml2.getBytes());
+			
+			doc=builder.parse(is);
+			elem2 = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Condition condition1=new Condition(model, elem1);
+		
+		Wait component=new Wait(model);
+		
+		component.setFor(condition1);
+		
+		if (component.getFor() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getUntil() != null) {
+			fail("Until condition should not be set");
+		}
+		
+		String result=component.getFor().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression1 is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+
+		Condition condition2=new Condition(model, elem2);
+		
+		component.setUntil(condition2);
+		
+		if (component.getUntil() == null) {
+			fail("Condition not set");
+		}
+
+		if (component.getFor() != null) {
+			fail("For condition should still not be set");
+		}
+		
+		result=component.getUntil().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr2) == false) {
+			fail("Expression2 is not valid: expecting '"+
+					expr2+"' but got '"+result+"'");
+		}
+	}		
+
+	public void testSetUntilThenFor() {
+		BPELLanguageModel model=new DefaultBPELLanguageModel(null);
+
+		String expr1="Test Expression 1";
+		String expr2="Test Expression 2";
+		
+		String xml1="<until xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr1+
+	       		"</until>";
+	
+		String xml2="<for xmlns=\"http://docs.oasis-open.org/wsbpel/2.0/process/executable\">"+
+	       		expr2+
+	       		"</for>";
+	
+		org.w3c.dom.Element elem1=null;
+		org.w3c.dom.Element elem2=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(xml1.getBytes());
+			
+			org.w3c.dom.Document doc=builder.parse(is);
+			elem1 = doc.getDocumentElement();
+			
+			is.close();
+			
+			is=new java.io.ByteArrayInputStream(xml2.getBytes());
+			
+			doc=builder.parse(is);
+			elem2 = doc.getDocumentElement();
+			
+			is.close();
+		} catch(Exception e) {
+			fail("Failed to convert to doc");
+		}
+		
+		Condition condition1=new Condition(model, elem1);
+		
+		Wait component=new Wait(model);
+		
+		component.setUntil(condition1);
+		
+		if (component.getUntil() == null) {
+			fail("Condition not set");
+		}
+		
+		if (component.getFor() != null) {
+			fail("For condition should not be set");
+		}
+		
+		String result=component.getUntil().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr1) == false) {
+			fail("Expression1 is not valid: expecting '"+
+					expr1+"' but got '"+result+"'");
+		}
+
+		Condition condition2=new Condition(model, elem2);
+		
+		component.setFor(condition2);
+		
+		if (component.getFor() == null) {
+			fail("Condition not set");
+		}
+
+		if (component.getUntil() != null) {
+			fail("Until condition should still not be set");
+		}
+		
+		result=component.getFor().getExpression();
+		
+		if (result == null) {
+			fail("Expression is null");
+		}
+		
+		if (result.equals(expr2) == false) {
+			fail("Expression2 is not valid: expecting '"+
+					expr2+"' but got '"+result+"'");
+		}
+	}		
 }




More information about the overlord-commits mailing list