Skip to content

Commit 837b0b0

Browse files
committed
Even more codegen
1 parent c89385f commit 837b0b0

File tree

11 files changed

+58
-58
lines changed

11 files changed

+58
-58
lines changed

reflectioning/src/main/java/io/tinyauth/elasticsearch/reflection/App.java

Lines changed: 50 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,22 @@ public static String listResource(String functionName, String resourceType) {
101101
return template.render(model);
102102
}
103103

104+
public static String flatMapResource(String functionName, String resourceType) {
105+
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/flatMapResource.twig");
106+
JtwigModel model = JtwigModel.newModel()
107+
.with("functionName", functionName)
108+
.with("resourceType", resourceType);
109+
return template.render(model);
110+
}
111+
112+
public static String indexRequest(String functionName, String resourceType) {
113+
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/indexRequest.twig");
114+
JtwigModel model = JtwigModel.newModel()
115+
.with("functionName", functionName)
116+
.with("resourceType", resourceType);
117+
return template.render(model);
118+
}
119+
104120
public static void main(String[] args) {
105121
Reflections reflections = new Reflections("org.elasticsearch");
106122

@@ -118,63 +134,60 @@ public static void main(String[] args) {
118134
Class<? extends ActionRequest> actionRequestType = getActionRequestForAction(actionType);
119135
List<String> extractions = new ArrayList<String>();
120136

137+
if (hasMethod(actionRequestType, "getIndex", "java.lang.String")) {
138+
extractions.add(singleResource("getIndex", "index"));
139+
}
140+
121141
if (hasMethod(actionRequestType, "indices", "java.lang.String[]")) {
122-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/indices.twig");
123-
JtwigModel model = JtwigModel.newModel()
124-
.with("requestClassName", actionRequestType.getSimpleName())
125-
.with("permissionName", permissionName);
126-
extractions.add(template.render(model));
142+
extractions.add(listResource("indices", "index"));
143+
}
144+
145+
if (hasMethod(actionRequestType, "getDestination", "org.elasticsearch.action.index.IndexRequest")) {
146+
extractions.add(indexRequest("getDestination", "index"));
127147
}
128148

129149
if (hasMethod(actionRequestType, "nodeIds", "java.lang.String[]")) {
130-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/nodeIds.twig");
131-
JtwigModel model = JtwigModel.newModel()
132-
.with("requestClassName", actionRequestType.getSimpleName())
133-
.with("permissionName", permissionName);
134-
extractions.add(template.render(model));
135-
return;
150+
extractions.add(listResource("nodeIds", "node"));
136151
}
137152

138153
if (hasMethod(actionRequestType, "getNodes", "java.lang.String[]")) {
139-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/getNodes.twig");
140-
JtwigModel model = JtwigModel.newModel()
141-
.with("requestClassName", actionRequestType.getSimpleName())
142-
.with("permissionName", permissionName);
143-
extractions.add(template.render(model));
154+
extractions.add(listResource("getNodes", "node"));
144155
}
145156

146157
if (hasMethod(actionRequestType, "getRequests", "java.lang.String[]")) {
147-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/getRequests.twig");
148-
JtwigModel model = JtwigModel.newModel()
149-
.with("requestClassName", actionRequestType.getSimpleName())
150-
.with("permissionName", permissionName);
151-
extractions.add(template.render(model));
158+
extractions.add(flatMapResource("getRequests", "index"));
152159
}
153160

154161
if (hasMethod(actionRequestType, "requests", "java.lang.String[]")) {
155-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/requests.twig");
156-
JtwigModel model = JtwigModel.newModel()
157-
.with("requestClassName", actionRequestType.getSimpleName())
158-
.with("permissionName", permissionName);
159-
extractions.add(template.render(model));
162+
extractions.add(flatMapResource("requests", "index"));
163+
}
164+
165+
if (actionRequestType.getSimpleName().contains("IndexTemplate")) {
166+
if (hasMethod(actionRequestType, "name", "java.lang.String")) {
167+
extractions.add(singleResource("name", "index-template"));
168+
}
169+
if (hasMethod(actionRequestType, "names", "java.lang.String[]")) {
170+
extractions.add(listResource("names", "index-template"));
171+
}
172+
}
173+
174+
if (actionRequestType.getSimpleName().contains("Pipeline")) {
175+
if (hasMethod(actionRequestType, "getId", "java.lang.String")) {
176+
extractions.add(singleResource("getId", "pipeline"));
177+
}
178+
if (hasMethod(actionRequestType, "getIds", "java.lang.String[]")) {
179+
extractions.add(listResource("getIds", "pipeline"));
180+
}
160181
}
161182

162183
if (actionRequestType.getSimpleName().contains("Repositor")) {
163184
if (hasMethod(actionRequestType, "name", "java.lang.String")) {
164-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/Repository.name.twig");
165-
JtwigModel model = JtwigModel.newModel()
166-
.with("requestClassName", actionRequestType.getSimpleName())
167-
.with("permissionName", permissionName);
168-
extractions.add(template.render(model));
185+
extractions.add(singleResource("name", "repository"));
169186
}
170187
}
171188

172189
if (hasMethod(actionRequestType, "repositories", "java.lang.String[]")) {
173-
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/Repository.repositories.twig");
174-
JtwigModel model = JtwigModel.newModel()
175-
.with("requestClassName", actionRequestType.getSimpleName())
176-
.with("permissionName", permissionName);
177-
extractions.add(template.render(model));
190+
extractions.add(listResource("repositories", "repository"));
178191
}
179192

180193
if (actionRequestType.getSimpleName().contains("StoredScript")) {
@@ -188,7 +201,7 @@ public static void main(String[] args) {
188201
}
189202

190203
if (hasMethod(actionRequestType, "snapshots", "java.lang.String[]")) {
191-
extractions.add(singleResource("snapshots", "snapshot"));
204+
extractions.add(listResource("snapshots", "snapshot"));
192205
}
193206

194207
if (extractions.size() == 0) {

reflectioning/src/main/resources/templates/Repository.name.twig

Lines changed: 0 additions & 2 deletions
This file was deleted.

reflectioning/src/main/resources/templates/Repository.repositories.twig

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* this {{ resourceType }} request has an {{ functionName }}() method */
2+
req.{{ functionName }}().stream()
3+
.flatMap(val -> Stream.of(val.indices()))
4+
.map(val -> formatArn("{{ resourceType }}", val))
5+
.forEach(permission::add);

reflectioning/src/main/resources/templates/getNodes.twig

Lines changed: 0 additions & 2 deletions
This file was deleted.

reflectioning/src/main/resources/templates/getRequests.twig

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/* this {{ resourceType }} related request has an {{ functionName }}() method that returns an IndexRequest */
2+
Stream.of(req.{{ functionName }}().indices()).map(idx -> formatArn("{{ resourceType }}", idx)).forEach(permission::add);

reflectioning/src/main/resources/templates/indices.twig

Lines changed: 0 additions & 2 deletions
This file was deleted.

reflectioning/src/main/resources/templates/nodeIds.twig

Lines changed: 0 additions & 2 deletions
This file was deleted.

reflectioning/src/main/resources/templates/requests.twig

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)