From 5a2cdcb0805396adbe0e988dc06bdd031ae4314c Mon Sep 17 00:00:00 2001
From: Arne <arne.peters@tum.de>
Date: Thu, 30 Aug 2018 15:48:25 +0200
Subject: [PATCH] adjusted autogenerated code to match actionlib defaults

---
 .../internal/message/GenerateInterfaces.java  | 43 +++++++++++++++----
 ...ctionGenerationTemplateActionFeedback.java | 36 ++++++++++++++++
 ...> ActionGenerationTemplateActionGoal.java} |  6 ++-
 .../ActionGenerationTemplateActionResult.java | 36 ++++++++++++++++
 .../ActionGenerationTemplateFeedback.java     | 34 +++++++++++++++
 ...java => ActionGenerationTemplateGoal.java} |  8 ++--
 ...va => ActionGenerationTemplateResult.java} |  8 ++--
 7 files changed, 152 insertions(+), 19 deletions(-)
 create mode 100644 message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionFeedback.java
 rename message_generation/src/main/java/org/ros/internal/message/action/{ActionGoalGenerationTemplate.java => ActionGenerationTemplateActionGoal.java} (84%)
 create mode 100644 message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionResult.java
 create mode 100644 message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateFeedback.java
 rename message_generation/src/main/java/org/ros/internal/message/action/{ActionFeedbackGenerationTemplate.java => ActionGenerationTemplateGoal.java} (84%)
 rename message_generation/src/main/java/org/ros/internal/message/action/{ActionResultGenerationTemplate.java => ActionGenerationTemplateResult.java} (84%)

diff --git a/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java b/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java
index 1a53d13..00bff33 100644
--- a/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java
+++ b/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java
@@ -24,9 +24,12 @@ import org.ros.exception.RosMessageRuntimeException;
 import org.ros.internal.message.definition.MessageDefinitionProviderChain;
 import org.ros.internal.message.definition.MessageDefinitionTupleParser;
 import org.ros.internal.message.action.ActionDefinitionFileProvider;
-import org.ros.internal.message.action.ActionGoalGenerationTemplate;
-import org.ros.internal.message.action.ActionFeedbackGenerationTemplate;
-import org.ros.internal.message.action.ActionResultGenerationTemplate;
+import org.ros.internal.message.action.ActionGenerationTemplateActionGoal;
+import org.ros.internal.message.action.ActionGenerationTemplateActionResult;
+import org.ros.internal.message.action.ActionGenerationTemplateActionFeedback;
+import org.ros.internal.message.action.ActionGenerationTemplateGoal;
+import org.ros.internal.message.action.ActionGenerationTemplateResult;
+import org.ros.internal.message.action.ActionGenerationTemplateFeedback;
 import org.ros.internal.message.service.ServiceDefinitionFileProvider;
 import org.ros.internal.message.topic.TopicDefinitionFileProvider;
 import org.ros.message.MessageDeclaration;
@@ -49,9 +52,14 @@ public class GenerateInterfaces {
   private final ActionDefinitionFileProvider actionDefinitionFileProvider;
   private final MessageDefinitionProviderChain messageDefinitionProviderChain;
   private final MessageFactory messageFactory;
-  private final ActionGoalGenerationTemplate actionGoalGenerationTemplate = new ActionGoalGenerationTemplate();
-  private final ActionFeedbackGenerationTemplate actionFeedbackGenerationTemplate = new ActionFeedbackGenerationTemplate();
-  private final ActionResultGenerationTemplate actionResultGenerationTemplate = new ActionResultGenerationTemplate();
+
+  private final MessageGenerationTemplate actionGenerationTemplateGoal     = new ActionGenerationTemplateGoal();
+  private final MessageGenerationTemplate actionGenerationTemplateResult   = new ActionGenerationTemplateResult();
+  private final MessageGenerationTemplate actionGenerationTemplateFeedback = new ActionGenerationTemplateFeedback();
+
+  private final MessageGenerationTemplate actionGenerationTemplateActionGoal     = new ActionGenerationTemplateActionGoal();
+  private final MessageGenerationTemplate actionGenerationTemplateActionResult   = new ActionGenerationTemplateActionResult();
+  private final MessageGenerationTemplate actionGenerationTemplateActionFeedback = new ActionGenerationTemplateActionFeedback();
 
   static private final String ROS_PACKAGE_PATH = "ROS_PACKAGE_PATH";
 
@@ -162,20 +170,37 @@ public class GenerateInterfaces {
 
       MessageDeclaration goalDeclaration = MessageDeclaration.of(
               actionType.getType() + "Goal",
-              actionGoalGenerationTemplate.applyTemplate(goalResultAndFeedback.get(0))
+              actionGenerationTemplateGoal.applyTemplate(goalResultAndFeedback.get(0))
       );
       MessageDeclaration resultDeclaration = MessageDeclaration.of(
               actionType.getType() + "Result",
-              actionResultGenerationTemplate.applyTemplate(goalResultAndFeedback.get(1))
+              actionGenerationTemplateResult.applyTemplate(goalResultAndFeedback.get(1))
       );
       MessageDeclaration feedbackDeclaration = MessageDeclaration.of(
               actionType.getType() + "Feedback",
-              actionFeedbackGenerationTemplate.applyTemplate(goalResultAndFeedback.get(2))
+              actionGenerationTemplateFeedback.applyTemplate(goalResultAndFeedback.get(2))
+      );
+
+      MessageDeclaration actionGoalDeclaration = MessageDeclaration.of(
+              actionType.getType() + "ActionGoal",
+              actionGenerationTemplateActionGoal.applyTemplate(actionType.getType())
+      );
+      MessageDeclaration actionResultDeclaration = MessageDeclaration.of(
+              actionType.getType() + "ActionResult",
+              actionGenerationTemplateActionResult.applyTemplate(actionType.getType())
+      );
+      MessageDeclaration actionFeedbackDeclaration = MessageDeclaration.of(
+              actionType.getType() + "ActionFeedback",
+              actionGenerationTemplateActionFeedback.applyTemplate(actionType.getType())
       );
 
       writeInterface(goalDeclaration, outputDirectory, true);
       writeInterface(resultDeclaration, outputDirectory, true);
       writeInterface(feedbackDeclaration, outputDirectory, true);
+
+      writeInterface(actionGoalDeclaration, outputDirectory, true);
+      writeInterface(actionResultDeclaration, outputDirectory, true);
+      writeInterface(actionFeedbackDeclaration, outputDirectory, true);
     }
   }
 
diff --git a/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionFeedback.java b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionFeedback.java
new file mode 100644
index 0000000..239192e
--- /dev/null
+++ b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionFeedback.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.ros.internal.message.action;
+
+import org.ros.internal.message.MessageGenerationTemplate;
+
+/**
+ * @author arne.peters@tum.de (Arne Peters)
+ */
+public class ActionGenerationTemplateActionFeedback implements MessageGenerationTemplate {
+
+  /**
+   * @return returns this {@link Message} as a {@link RawMessage}
+   */
+  public String applyTemplate(String messageSource) {
+    return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n" +
+           "\n" +
+           "Header header\n" +
+           "actionlib_msgs/GoalStatus status\n" +
+           messageSource + "Feedback feedback";
+  }
+}
diff --git a/message_generation/src/main/java/org/ros/internal/message/action/ActionGoalGenerationTemplate.java b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionGoal.java
similarity index 84%
rename from message_generation/src/main/java/org/ros/internal/message/action/ActionGoalGenerationTemplate.java
rename to message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionGoal.java
index 87e9b36..3ea20a3 100644
--- a/message_generation/src/main/java/org/ros/internal/message/action/ActionGoalGenerationTemplate.java
+++ b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionGoal.java
@@ -16,10 +16,12 @@
 
 package org.ros.internal.message.action;
 
+import org.ros.internal.message.MessageGenerationTemplate;
+
 /**
  * @author arne.peters@tum.de (Arne Peters)
  */
-public class ActionGoalGenerationTemplate {
+public class ActionGenerationTemplateActionGoal implements MessageGenerationTemplate {
 
   /**
    * @return returns this {@link Message} as a {@link RawMessage}
@@ -29,6 +31,6 @@ public class ActionGoalGenerationTemplate {
            "\n" +
            "Header header\n" +
             "actionlib_msgs/GoalID goal_id\n" +
-           messageSource;
+           messageSource + "Goal goal";
   }
 }
diff --git a/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionResult.java b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionResult.java
new file mode 100644
index 0000000..0a137b9
--- /dev/null
+++ b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateActionResult.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.ros.internal.message.action;
+
+import org.ros.internal.message.MessageGenerationTemplate;
+
+/**
+ * @author arne.peters@tum.de (Arne Peters)
+ */
+public class ActionGenerationTemplateActionResult implements MessageGenerationTemplate {
+
+  /**
+   * @return returns this {@link Message} as a {@link RawMessage}
+   */
+  public String applyTemplate(String messageSource) {
+    return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n" +
+           "\n" +
+           "Header header\n" +
+           "actionlib_msgs/GoalStatus status\n" +
+           messageSource + "Result result";
+  }
+}
diff --git a/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateFeedback.java b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateFeedback.java
new file mode 100644
index 0000000..9a466b0
--- /dev/null
+++ b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateFeedback.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2012 Google Inc.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.ros.internal.message.action;
+
+import org.ros.internal.message.MessageGenerationTemplate;
+
+/**
+ * @author arne.peters@tum.de (Arne Peters)
+ */
+public class ActionGenerationTemplateFeedback implements MessageGenerationTemplate {
+
+  /**
+   * @return returns this {@link Message} as a {@link RawMessage}
+   */
+  public String applyTemplate(String messageSource) {
+    return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n" +
+           "#feedback definition\n" +
+           messageSource;
+  }
+}
diff --git a/message_generation/src/main/java/org/ros/internal/message/action/ActionFeedbackGenerationTemplate.java b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateGoal.java
similarity index 84%
rename from message_generation/src/main/java/org/ros/internal/message/action/ActionFeedbackGenerationTemplate.java
rename to message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateGoal.java
index 2091eef..3a085af 100644
--- a/message_generation/src/main/java/org/ros/internal/message/action/ActionFeedbackGenerationTemplate.java
+++ b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateGoal.java
@@ -16,19 +16,19 @@
 
 package org.ros.internal.message.action;
 
+import org.ros.internal.message.MessageGenerationTemplate;
+
 /**
  * @author arne.peters@tum.de (Arne Peters)
  */
-public class ActionFeedbackGenerationTemplate {
+public class ActionGenerationTemplateGoal implements MessageGenerationTemplate {
 
   /**
    * @return returns this {@link Message} as a {@link RawMessage}
    */
   public String applyTemplate(String messageSource) {
     return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n" +
-           "\n" +
-           "Header header\n" +
-           "actionlib_msgs/GoalStatus status\n" +
+           "#goal definition" +
            messageSource;
   }
 }
diff --git a/message_generation/src/main/java/org/ros/internal/message/action/ActionResultGenerationTemplate.java b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateResult.java
similarity index 84%
rename from message_generation/src/main/java/org/ros/internal/message/action/ActionResultGenerationTemplate.java
rename to message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateResult.java
index 2db93a7..2345292 100644
--- a/message_generation/src/main/java/org/ros/internal/message/action/ActionResultGenerationTemplate.java
+++ b/message_generation/src/main/java/org/ros/internal/message/action/ActionGenerationTemplateResult.java
@@ -16,19 +16,19 @@
 
 package org.ros.internal.message.action;
 
+import org.ros.internal.message.MessageGenerationTemplate;
+
 /**
  * @author arne.peters@tum.de (Arne Peters)
  */
-public class ActionResultGenerationTemplate {
+public class ActionGenerationTemplateResult implements MessageGenerationTemplate {
 
   /**
    * @return returns this {@link Message} as a {@link RawMessage}
    */
   public String applyTemplate(String messageSource) {
     return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n" +
-           "\n" +
-           "Header header\n" +
-           "actionlib_msgs/GoalStatus status\n" +
+           "#result definition" +
            messageSource;
   }
 }
-- 
GitLab