67 String OUTSTRING =
"";
70 String query =
rdf.getPREFIXSPARQL();
71 query +=
"SELECT * WHERE { "
74 +
"?s dc:identifier ?identifier . "
75 +
"OPTIONAL { ?s foaf:accountName ?name . } "
76 +
"OPTIONAL { ?s foaf:firstName ?firstName . } "
77 +
"OPTIONAL { ?s foaf:lastName ?lastName . } "
80 List<String> sortList =
new ArrayList<String>();
82 String sortArray[] = sort.split(
",");
83 for (String element : sortArray) {
85 String sortDirection = element.substring(0, 1);
86 if (sortDirection.equals(
"+")) {
87 sortDirection =
"ASC";
89 sortDirection =
"DESC";
91 element = element.substring(1);
92 sortList.add(sortDirection +
"(?" + element +
") ");
96 for (String element : sortList) {
101 long ctm_start = System.currentTimeMillis();
102 List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam(
"repository"), ConfigProperties.getPropertyParam(
"ts_server"), query);
103 List<String> s = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"s");
104 List<String> p = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"p");
105 List<String> o = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"o");
106 System.out.println(System.currentTimeMillis() - ctm_start);
107 if (result.size() < 1) {
108 throw new ResourceNotAvailableException();
110 for (
int i = 0; i < s.size(); i++) {
111 rdf.setModelTriple(s.get(i), p.get(i), o.get(i));
113 JSONArray outArray =
new JSONArray();
114 if (acceptHeader.contains(
"application/json") || acceptHeader.contains(
"text/html")) {
115 JSONObject jsonObject = (JSONObject)
new JSONParser().parse(
rdf.getModel(
"RDF/JSON"));
116 Set keys = jsonObject.keySet();
117 Iterator a = keys.iterator();
118 while (a.hasNext()) {
119 String key = (String) a.next();
120 JSONObject tmpObject = (JSONObject) jsonObject.get(key);
121 JSONArray idArray = (JSONArray) tmpObject.get(
rdf.getPrefixItem(
"dc:identifier"));
122 JSONObject idObject = (JSONObject) idArray.get(0);
123 String h = (String) idObject.get(
"value");
124 JSONObject tmpObject2 =
new JSONObject();
125 tmpObject2.put(key, tmpObject);
126 String hh = tmpObject2.toString();
127 JSONObject tmp = Transformer.agent_GET(hh, h);
129 JSONObject user = SQlite.getUserInfo(h);
130 tmp.put(
"role", user.get(
"role"));
131 tmp.put(
"status", user.get(
"status"));
135 System.out.println(System.currentTimeMillis() - ctm_start);
136 if (acceptHeader.contains(
"application/json")) {
138 JsonParser parser =
new JsonParser();
139 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
140 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
141 return Response.ok(gson.toJson(json)).build();
143 OUTSTRING = outArray.toString();
144 if (acceptEncoding.contains(
"gzip")) {
146 final String OUTSTRING_FINAL = OUTSTRING;
147 StreamingOutput stream;
148 stream =
new StreamingOutput() {
150 public void write(OutputStream output)
throws IOException, WebApplicationException {
152 output =
GZIP(OUTSTRING_FINAL, output);
154 System.out.println(e.toString());
158 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
160 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
163 }
else if (acceptHeader.contains(
"application/rdf+json")) {
164 return Response.ok(
rdf.getModel(
"RDF/JSON")).header(
"Content-Type",
"application/json;charset=UTF-8").build();
165 }
else if (acceptHeader.contains(
"text/html")) {
167 JsonParser parser =
new JsonParser();
168 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
169 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
170 return Response.ok(gson.toJson(json)).header(
"Content-Type",
"application/json;charset=UTF-8").build();
172 OUTSTRING = outArray.toString();
173 if (acceptEncoding.contains(
"gzip")) {
175 final String OUTSTRING_FINAL = OUTSTRING;
176 StreamingOutput stream;
177 stream =
new StreamingOutput() {
179 public void write(OutputStream output)
throws IOException, WebApplicationException {
181 output =
GZIP(OUTSTRING_FINAL, output);
183 System.out.println(e.toString());
187 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
189 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
192 }
else if (acceptHeader.contains(
"application/xml")) {
193 return Response.ok(
rdf.getModel(
"RDF/XML")).build();
194 }
else if (acceptHeader.contains(
"application/rdf+xml")) {
195 return Response.ok(
rdf.getModel(
"RDF/XML")).build();
196 }
else if (acceptHeader.contains(
"text/turtle")) {
197 return Response.ok(
rdf.getModel(
"Turtle")).build();
198 }
else if (acceptHeader.contains(
"text/n3")) {
199 return Response.ok(
rdf.getModel(
"N-Triples")).build();
200 }
else if (acceptHeader.contains(
"application/ld+json")) {
201 return Response.ok(
rdf.getModel(
"JSON-LD")).build();
203 JsonParser parser =
new JsonParser();
204 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
205 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
206 return Response.ok(gson.toJson(json)).header(
"Content-Type",
"application/json;charset=UTF-8").build();
208 OUTSTRING = outArray.toString();
209 if (acceptEncoding.contains(
"gzip")) {
211 final String OUTSTRING_FINAL = OUTSTRING;
212 StreamingOutput stream;
213 stream =
new StreamingOutput() {
215 public void write(OutputStream output)
throws IOException, WebApplicationException {
217 output =
GZIP(OUTSTRING_FINAL, output);
219 System.out.println(e.toString());
223 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
225 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
229 if (e.toString().contains(
"ResourceNotAvailableException")) {
230 JSONArray outArray =
new JSONArray();
231 return Response.ok(outArray).header(
"Content-Type",
"application/json;charset=UTF-8").build();
233 return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e,
"v1.rest.AgentsResource"))
234 .header(
"Content-Type",
"application/json;charset=UTF-8").build();