Skip to content

Commit 49a2b72

Browse files
author
“jklein94”
committed
Added functionality ( get models and query) for aba website
1 parent 5e62020 commit 49a2b72

16 files changed

Lines changed: 794 additions & 7 deletions

org-tweetyproject-web/src/main/java/org/tweetyproject/web/pyargservices/RequestController.java

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import org.tweetyproject.arg.delp.syntax.DefeasibleLogicProgram;
7474
import org.tweetyproject.arg.dung.reasoner.AbstractExtensionReasoner;
7575
import org.tweetyproject.arg.dung.semantics.Extension;
76+
import org.tweetyproject.web.pyargservices.aba.AbaGetSemanticsResponse;
7677
import org.tweetyproject.web.pyargservices.aba.AbaReasonerCalleeFactory;
7778
import org.tweetyproject.web.pyargservices.aba.AbaReasonerGetModelsCallee;
7879
import org.tweetyproject.web.pyargservices.aba.AbaReasonerPost;
@@ -91,16 +92,15 @@ public class RequestController {
9192
private final int SERVICES_TIMEOUT_DELP = 600;
9293
private final int SERVICES_TIMEOUT_INCMES = 300;
9394

94-
private AbaReasonerResponse handleQueryAbaRequest(AbaReasonerPost AbaReasonerPost){
95-
96-
97-
return null;
98-
}
99-
10095
@PostMapping(value = "/aba", produces = "application/json", consumes = "application/json")
10196
@ResponseBody
10297
public Response handleRequest(
103-
@RequestBody AbaReasonerPost AbaReasonerPost) throws ParserException, IOException {
98+
@RequestBody AbaReasonerPost AbaReasonerPost) throws ParserException, IOException, JSONException, org.codehaus.jettison.json.JSONException {
99+
100+
101+
if (AbaReasonerPost.getCmd().equals("semantics")) {
102+
return handleGetSemantics(AbaReasonerPost);
103+
}
104104

105105

106106
// DungTheory dungTheory =
@@ -173,8 +173,11 @@ public Response handleRequest(
173173
// handle timeout
174174
if (AbaReasonerPost.getCmd().equals("get_models") || AbaReasonerPost.getCmd().equals("get_model")) {
175175
Future<Collection<AbaExtension<Formula>>> future = executor.submit(callee);
176+
177+
System.out.print("Run command: "+ AbaReasonerPost.getCmd() + " with timeout: " + user_timeout + ".....");
176178
Pair<Collection<AbaExtension<Formula>>, Long> result = Utils.runServicesWithTimeout(future,
177179
user_timeout, unit);
180+
System.out.println("DONE!");
178181
reasonerResponse.setTime(result.getValue());
179182
reasonerResponse.setAnswer(result.getKey().toString());
180183
reasonerResponse.setStatus("SUCCESS");
@@ -496,4 +499,31 @@ private InconsistencyGetMeasuresResponse handleGetMeasures(InconsistencyPost que
496499
return response;
497500
}
498501

502+
503+
/**
504+
* Handles the "List semanctics" command for aba
505+
*
506+
* @param query some query
507+
* @return the reply
508+
* @throws JSONException if some JSON issue occurs.
509+
* @throws org.codehaus.jettison.json.JSONException
510+
*/
511+
private AbaGetSemanticsResponse handleGetSemantics(AbaReasonerPost query)
512+
throws JSONException, org.codehaus.jettison.json.JSONException {
513+
AbaGetSemanticsResponse response = new AbaGetSemanticsResponse();
514+
List<HashMap<String, String>> value = new LinkedList<HashMap<String, String>>();
515+
HashMap<String, String> jsonMes;
516+
for (org.tweetyproject.web.pyargservices.aba.GeneralAbaReasonerFactory.Semantics m : GeneralAbaReasonerFactory.Semantics.values()) {
517+
jsonMes = new HashMap<String, String>();
518+
jsonMes.put(InconsistencyMeasurementService.JSON_ATTR_ID, m.id);
519+
jsonMes.put(InconsistencyMeasurementService.JSON_ATTR_LABEL, m.label);
520+
value.add(jsonMes);
521+
}
522+
response.setSemantics(value);
523+
response.setEmail(query.getEmail());
524+
response.reply(query.getCmd());
525+
return response;
526+
}
527+
528+
499529
}

org-tweetyproject-web/src/main/java/org/tweetyproject/web/pyargservices/RestServiceCorsApplication.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
@SpringBootApplication
1212
public class RestServiceCorsApplication {
1313
String allowedOrigins = "http://tweetyproject.org";
14+
String debug_allowedOrigins = "http://127.0.0.1:5500/";
1415
public static void main(String[] args) {
1516
SpringApplication.run(RestServiceCorsApplication.class, args);
1617
}
@@ -23,6 +24,7 @@ public void addCorsMappings(CorsRegistry registry) {
2324
registry.addMapping("/delp").allowedOrigins(allowedOrigins);
2425
registry.addMapping("/ping").allowedOrigins(allowedOrigins);
2526
registry.addMapping("/incmes").allowedOrigins(allowedOrigins);
27+
registry.addMapping("/aba").allowedOrigins(debug_allowedOrigins);
2628
}
2729
};
2830
}
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package org.tweetyproject.web.pyargservices.aba;
2+
3+
import java.util.HashMap;
4+
import java.util.List;
5+
6+
import org.tweetyproject.web.pyargservices.Response;
7+
8+
import java.util.Objects;
9+
10+
public class AbaGetSemanticsResponse extends Response {
11+
private List<HashMap<String, String>> semantics;
12+
private String reply;
13+
private String email;
14+
15+
public AbaGetSemanticsResponse() {
16+
}
17+
18+
public AbaGetSemanticsResponse(List<HashMap<String,String>> measures, String reply, String email) {
19+
this.semantics = measures;
20+
this.reply = reply;
21+
this.email = email;
22+
}
23+
24+
public List<HashMap<String,String>> getSemantics() {
25+
return this.semantics;
26+
}
27+
28+
public void setSemantics(List<HashMap<String,String>> measures) {
29+
this.semantics = measures;
30+
}
31+
32+
public String getReply() {
33+
return this.reply;
34+
}
35+
36+
public void setReply(String reply) {
37+
this.reply = reply;
38+
}
39+
40+
public String getEmail() {
41+
return this.email;
42+
}
43+
44+
public void setEmail(String email) {
45+
this.email = email;
46+
}
47+
48+
public AbaGetSemanticsResponse measures(List<HashMap<String,String>> measures) {
49+
setSemantics(measures);
50+
return this;
51+
}
52+
53+
public AbaGetSemanticsResponse reply(String reply) {
54+
setReply(reply);
55+
return this;
56+
}
57+
58+
public AbaGetSemanticsResponse email(String email) {
59+
setEmail(email);
60+
return this;
61+
}
62+
63+
@Override
64+
public boolean equals(Object o) {
65+
if (o == this)
66+
return true;
67+
if (!(o instanceof AbaGetSemanticsResponse)) {
68+
return false;
69+
}
70+
AbaGetSemanticsResponse inconsistencyInfoResponse = (AbaGetSemanticsResponse) o;
71+
return Objects.equals(semantics, inconsistencyInfoResponse.semantics) && Objects.equals(reply, inconsistencyInfoResponse.reply) && Objects.equals(email, inconsistencyInfoResponse.email);
72+
}
73+
74+
@Override
75+
public int hashCode() {
76+
return Objects.hash(semantics, reply, email);
77+
}
78+
79+
@Override
80+
public String toString() {
81+
return "{" +
82+
" measures='" + getSemantics() + "'" +
83+
", reply='" + getReply() + "'" +
84+
", email='" + getEmail() + "'" +
85+
"}";
86+
}
87+
88+
89+
}
660 Bytes
Loading
9.42 KB
Loading
3.01 KB
Loading
2.29 KB
Loading
3.4 KB
Loading
3.4 KB
Loading
6.23 KB
Loading

0 commit comments

Comments
 (0)