-
Notifications
You must be signed in to change notification settings - Fork 108
Expand file tree
/
Copy pathaction.java.em
More file actions
97 lines (81 loc) · 2.96 KB
/
action.java.em
File metadata and controls
97 lines (81 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
@# Generation triggered from rosidl_generator_java/resource/idl.java.em
// generated from rosidl_generator_java/resource/action.java.em
// with input from @(package_name):@(interface_path)
// generated code does not contain a copyright notice
package @(package_name + '.' + interface_path.parts[0]);
@{
import os
from rosidl_cmake import expand_template
namespaces = action.namespaced_type.namespaces
type_name = action.namespaced_type.name
goal_type_name = action.goal.structure.namespaced_type.name
result_type_name = action.result.structure.namespaced_type.name
feedback_type_name = action.feedback.structure.namespaced_type.name
send_goal_type_name = action.send_goal_service.namespaced_type.name
get_result_type_name = action.get_result_service.namespaced_type.name
data = {
'package_name': package_name,
'interface_path': interface_path,
'output_dir': output_dir,
'template_basepath': template_basepath,
}
data.update({'message': action.goal})
output_file = os.path.join(output_dir, *namespaces[1:], goal_type_name + '.java')
expand_template(
'msg.java.em',
data,
output_file,
template_basepath=template_basepath)
data.update({'message': action.result})
output_file = os.path.join(output_dir, *namespaces[1:], result_type_name + '.java')
expand_template(
'msg.java.em',
data,
output_file,
template_basepath=template_basepath)
data.update({'message': action.feedback})
output_file = os.path.join(output_dir, *namespaces[1:], feedback_type_name + '.java')
expand_template(
'msg.java.em',
data,
output_file,
template_basepath=template_basepath)
data.update({'service': action.send_goal_service})
output_file = os.path.join(output_dir, *namespaces[1:], send_goal_type_name + '.java')
expand_template(
'srv.java.em',
data,
output_file,
template_basepath=template_basepath)
data.update({'service': action.get_result_service})
output_file = os.path.join(output_dir, *namespaces[1:], get_result_type_name + '.java')
expand_template(
'srv.java.em',
data,
output_file,
template_basepath=template_basepath)
action_imports = [
'org.ros2.rcljava.common.JNIUtils',
'org.ros2.rcljava.interfaces.ActionDefinition',
'org.slf4j.Logger',
'org.slf4j.LoggerFactory',
]
}@
@[for action_import in action_imports]@
import @(action_import);
@[end for]@
public class @(type_name) implements ActionDefinition {
private static final Logger logger = LoggerFactory.getLogger(@(type_name).class);
static {
try {
JNIUtils.loadTypesupport(@(type_name).class);
} catch (UnsatisfiedLinkError ule) {
logger.error("Native code library failed to load.\n" + ule);
System.exit(1);
}
}
public static native long getActionTypeSupport();
public static final Class<@(type_name)_Goal> GoalType = @(type_name)_Goal.class;
public static final Class<@(type_name)_Result> ResultType = @(type_name)_Result.class;
public static final Class<@(type_name)_Feedback> FeedbackType = @(type_name)_Feedback.class;
}