[overlord-commits] Overlord SVN: r221 - cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Aug 6 11:57:09 EDT 2008


Author: objectiser
Date: 2008-08-06 11:57:08 -0400 (Wed, 06 Aug 2008)
New Revision: 221

Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java
Log:
Generate business object types for conversation hierarchy, and also variables aswell as roles.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java	2008-08-06 15:56:29 UTC (rev 220)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java	2008-08-06 15:57:08 UTC (rev 221)
@@ -377,7 +377,7 @@
 			org.w3c.dom.Element esbConfig, ConversationModel localcm)
 							throws Exception {
 		
-		IJavaProject jproj=createJavaProject(projectName);
+		final IJavaProject jproj=createJavaProject(projectName);
 		
 		if (jproj != null && esbConfig != null) {
 			// Store ESB configuration
@@ -398,7 +398,23 @@
 			
 			// Generate business object types for
 			// local conversation model
-			generateBusinessObjectType(jproj, localcm.getConversation());
+			localcm.visit(new Visitor() {
+
+				public boolean visit(ModelObject obj) {
+					
+					if (obj instanceof Conversation) {
+						try {
+							generateBusinessObjectType(jproj,
+									(Conversation)obj);
+						} catch(Exception e) {
+							error("Failed to generate business object type",
+									e);
+						}
+					}
+					
+					return true;
+				}	
+			});
 		}
 	}
 	
@@ -471,6 +487,7 @@
 	protected void generateBusinessObjectTypeMethods(TypeDeclaration type,
 					final Conversation conversation) throws Exception {
 		final java.util.List<Role> roles=new java.util.Vector<Role>();
+		final java.util.List<Variable> variables=new java.util.Vector<Variable>();
 		
 		conversation.visit(new Visitor() {
 			public boolean visit(ModelObject obj) {
@@ -491,6 +508,10 @@
 							roles.contains(interaction.getToRole()) == false) {
 						roles.add(interaction.getToRole());
 					}
+				} else if (obj instanceof VariableList) {
+					VariableList vars=(VariableList)obj;
+					
+					variables.addAll(vars.getVariables());
 				}
 				
 				return(ret);
@@ -511,9 +532,7 @@
 			method.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
 	
 			org.eclipse.jdt.core.dom.Block block=ast.newBlock();
-			
-			LineComment comment=ast.newLineComment();
-			
+						
 			ReturnStatement retStatement=ast.newReturnStatement();
 			
 			retStatement.setExpression(ast.newNullLiteral());
@@ -546,6 +565,56 @@
 			
 			type.bodyDeclarations().add(method);
 		}
+
+		for (int i=0; i < variables.size(); i++) {
+			AST ast=type.getAST();
+			
+			String methodName=
+				ConversationUtil.getVariableAccessorMethod(variables.get(i).getName());
+			
+			MethodDeclaration method=ast.newMethodDeclaration();
+			method.setName(ast.newSimpleName(methodName));
+			method.setReturnType2(ast.newSimpleType(
+					ast.newName("Object")));
+	
+			method.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
+	
+			org.eclipse.jdt.core.dom.Block block=ast.newBlock();
+			
+			ReturnStatement retStatement=ast.newReturnStatement();
+			
+			retStatement.setExpression(ast.newNullLiteral());
+			
+			block.statements().add(retStatement);
+			
+			method.setBody(block);				
+			
+			type.bodyDeclarations().add(method);
+			
+			// Generate setter method
+			methodName=
+				ConversationUtil.getVariableModifierMethod(variables.get(i).getName());
+			
+			method=ast.newMethodDeclaration();
+			method.setName(ast.newSimpleName(methodName));
+			method.setReturnType2(ast.newSimpleType(
+					ast.newName("void")));
+			
+			SingleVariableDeclaration svd=ast.newSingleVariableDeclaration();
+			svd.setName(ast.newSimpleName("value"));
+			svd.setType(ast.newSimpleType(
+							ast.newName("Object")));
+			
+			method.parameters().add(svd);
+	
+			method.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
+	
+			block=ast.newBlock();
+			
+			method.setBody(block);				
+			
+			type.bodyDeclarations().add(method);
+		}
 	}
 		
 	protected IJavaProject createJavaProject(String projectName)




More information about the overlord-commits mailing list