[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