[overlord-commits] Overlord SVN: r484 - cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Mon Feb 9 15:27:42 EST 2009


Author: objectiser
Date: 2009-02-09 15:27:42 -0500 (Mon, 09 Feb 2009)
New Revision: 484

Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java
Log:
Add 'event' element, with an appropriate description, for top level SwitchAction paths that are not triggered by received message types.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java	2009-02-07 20:41:26 UTC (rev 483)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java	2009-02-09 20:27:42 UTC (rev 484)
@@ -34,7 +34,9 @@
 	private static final long serialVersionUID = 3765702614644769281L;
 
 	public static final String TYPE_ATTR = "type";
+	public static final String DESCRIPTION_ATTR = "description";
 	public static final String MESSAGE_ELEMENT = "message";
+	public static final String EVENT_ELEMENT = "event";
 	private static final String SERVICE_NAME = "service-name";
 	private static final String SERVICE_CATEGORY = "service-category";
 	private static final String CASE = "case";
@@ -257,6 +259,8 @@
 	public void addCase(String category, String name,
 			java.util.Set<Interaction> messageTypes, int position) {
 		boolean f_associatePath=false;
+		boolean f_eventBased=false;
+		String eventDescription="TODO: Path triggered by internal event";
 		org.w3c.dom.Element paths=getPropertyElement(PATHS);
 		
 		org.w3c.dom.Element path=
@@ -267,6 +271,7 @@
 		if (messageTypes != null && messageTypes.size() > 0) {
 			java.util.Iterator<Interaction> iter=messageTypes.iterator();
 			boolean f_onlySend=true;
+			String sendEventTypes=null;
 			
 			while (iter.hasNext()) {
 				Interaction interaction=iter.next();
@@ -291,6 +296,16 @@
 						
 						f_associatePath = true;
 					}
+				} else if (interaction.getMessageSignature().getTypes().size()==1) {
+					if (sendEventTypes == null) {
+						sendEventTypes = InteractionUtil.getTypeString(
+								interaction.getMessageSignature().
+								getTypes().get(0));
+					} else {
+						sendEventTypes += ", "+InteractionUtil.getTypeString(
+								interaction.getMessageSignature().
+								getTypes().get(0));
+					}
 				}
 			}
 			
@@ -301,6 +316,11 @@
 				// conformance checking to understand that it is a
 				// valid path, that needs to be handled.
 				f_associatePath = true;
+				
+				f_eventBased = true;
+				
+				eventDescription="Event trigger to send "+
+						sendEventTypes+" message type(s)";
 			}
 		} else {
 			// Associate the path, even though it has no associated
@@ -309,8 +329,19 @@
 			// conformance checking to understand that it is a
 			// valid path, that needs to be handled.
 			f_associatePath = true;
+			
+			f_eventBased = true;
 		}
 		
+		if (f_eventBased) {
+			org.w3c.dom.Element mt=
+				getAction().getOwnerDocument().createElement(EVENT_ELEMENT);
+				
+			mt.setAttribute(DESCRIPTION_ATTR, eventDescription);
+			
+			path.appendChild(mt);						
+		}
+		
 		//if (f_associatePath) {
 			paths.appendChild(path);
 		//}




More information about the overlord-commits mailing list