labelingsystem-server  Version 0.1.0.0
AgentsResource Class Reference

REST API for Vocabularies. More...

Public Member Functions

Response getAgents ( @HeaderParam("Accept") String acceptHeader, @HeaderParam("Accept-Encoding") String acceptEncoding, @QueryParam("pretty") boolean pretty, @QueryParam("sort") String sort) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
 
Response getAgent (@PathParam("agent") String agent, @HeaderParam("Accept") String acceptHeader, @QueryParam("pretty") boolean pretty, @HeaderParam("Accept-Encoding") String acceptEncoding) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 
Response getAgent_JSON (@PathParam("agent") String agent, @QueryParam("pretty") boolean pretty, @HeaderParam("Accept-Encoding") String acceptEncoding) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getAgent_XML (@PathParam("agent") String agent) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getAgentRDF_XML (@PathParam("agent") String agent) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 
Response getAgentRDF_Turtle (@PathParam("agent") String agent) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getAgentRDF_N3 (@PathParam("agent") String agent) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getAgentRDF_JSONRDF (@PathParam("agent") String agent, @QueryParam("pretty") boolean pretty) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response getAgentRDF_JSONLD (@PathParam("agent") String agent, @QueryParam("pretty") boolean pretty) throws IOException, JDOMException, TransformerException, ParserConfigurationException
 
Response postAgent (String json) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
 
Response updateAgent (@PathParam("agent") String agent, String json) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 
Response deleteAgent (@PathParam("agent") String agent) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
 

Static Private Member Functions

static String createAgentSPARQLUPDATE (String item, String itemid) throws ConfigException, IOException, UniqueIdentifierException
 
static String putAgentSPARQLUPDATE (String id) throws IOException
 
static String deleteAgentSPARQLUPDATE (String id) throws IOException
 
static OutputStream GZIP (String input, OutputStream baos) throws IOException
 

Detailed Description

REST API for Vocabularies.

Author
Florian Thiery M.Sc.
i3mainz - Institute for Spatial Information and Surveying Technology
Version
27.06.2016

Member Function Documentation

◆ createAgentSPARQLUPDATE()

static String createAgentSPARQLUPDATE ( String  item,
String  itemid 
) throws ConfigException, IOException, UniqueIdentifierException
staticprivate
756  {
757  RDF rdf = new RDF();
758  String prefixes = rdf.getPREFIXSPARQL();
759  String triples = prefixes + "INSERT DATA { ";
760  triples += item + ":" + itemid + " a ls:Agent . ";
761  triples += item + ":" + itemid + " a foaf:Agent . ";
762  triples += item + ":" + itemid + " dc:identifier \"" + itemid + "\"" + " . ";
763  triples += " }";
764  return triples;
765  }

◆ deleteAgent()

Response deleteAgent ( @PathParam("agent") String  agent) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
736  {
737  try {
738  String item = "ls_age";
739  // check if resource exists
740  String queryExist = GeneralFunctions.getAllElementsForItemID(item, agent);
741  List<BindingSet> resultExist = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), queryExist);
742  if (resultExist.size() < 1) {
743  throw new ResourceNotAvailableException();
744  }
745  // insert data
746  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), deleteAgentSPARQLUPDATE(agent));
747  // get result als json
748  String out = Transformer.empty_JSON("agent").toJSONString();
749  return Response.status(Response.Status.CREATED).entity(out).build();
750  } catch (Exception e) {
751  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
752  .header("Content-Type", "application/json;charset=UTF-8").build();
753  }
754  }

References Transformer.empty_JSON(), GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ deleteAgentSPARQLUPDATE()

static String deleteAgentSPARQLUPDATE ( String  id) throws IOException
staticprivate
782  {
783  RDF rdf = new RDF();
784  String prefixes = rdf.getPREFIXSPARQL();
785  String update = prefixes
786  + "DELETE { ?agent ?p ?o. } "
787  + "WHERE { "
788  + "?agent ?p ?o. "
789  + "?agent dc:identifier ?identifier. "
790  + "FILTER (?identifier=\"$identifier\") "
791  + "}";
792  update = update.replace("$identifier", id);
793  return update;
794  }

◆ getAgent()

Response getAgent ( @PathParam("agent") String  agent,
@HeaderParam("Accept") String  acceptHeader,
@QueryParam("pretty") boolean  pretty,
@HeaderParam("Accept-Encoding") String  acceptEncoding 
) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
242  {
243  try {
244  String OUTSTRING = "";
245  RDF rdf = new RDF();
246  String item = "ls_age";
247  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
248  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
249  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
250  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
251  if (result.size() < 1) {
252  throw new ResourceNotAvailableException();
253  }
254  for (int i = 0; i < predicates.size(); i++) {
255  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
256  }
257  if (acceptHeader.contains("application/json")) {
258  JSONObject agentObject = Transformer.agent_GET(rdf.getModel("RDF/JSON"), agent);
259  // get database properties and add to triplestore data
260  JSONObject user = SQlite.getUserInfo(agent);
261  agentObject.put("role", user.get("role"));
262  agentObject.put("status", user.get("status"));
263  String out = agentObject.toJSONString();
264  if (pretty) {
265  JsonParser parser = new JsonParser();
266  JsonObject json = parser.parse(out).getAsJsonObject();
267  Gson gson = new GsonBuilder().setPrettyPrinting().create();
268  return Response.ok(gson.toJson(json)).build();
269  } else {
270  OUTSTRING = out.toString();
271  if (acceptEncoding.contains("gzip")) {
272  // set outputstream
273  final String OUTSTRING_FINAL = OUTSTRING;
274  StreamingOutput stream;
275  stream = new StreamingOutput() {
276  @Override
277  public void write(OutputStream output) throws IOException, WebApplicationException {
278  try {
279  output = GZIP(OUTSTRING_FINAL, output);
280  } catch (Exception e) {
281  System.out.println(e.toString());
282  }
283  }
284  };
285  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
286  } else {
287  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
288  }
289  }
290  } else if (acceptHeader.contains("application/rdf+json")) {
291  return Response.ok(rdf.getModel("RDF/JSON")).header("Content-Type", "application/json;charset=UTF-8").build();
292  } else if (acceptHeader.contains("text/html")) {
293  JSONObject agentObject = Transformer.agent_GET(rdf.getModel("RDF/JSON"), agent);
294  // get database properties and add to triplestore data
295  JSONObject user = SQlite.getUserInfo(agent);
296  agentObject.put("role", user.get("role"));
297  agentObject.put("status", user.get("status"));
298  String out = agentObject.toJSONString();
299  if (pretty) {
300  JsonParser parser = new JsonParser();
301  JsonObject json = parser.parse(out).getAsJsonObject();
302  Gson gson = new GsonBuilder().setPrettyPrinting().create();
303  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
304  } else {
305  OUTSTRING = out.toString();
306  if (acceptEncoding.contains("gzip")) {
307  // set outputstream
308  final String OUTSTRING_FINAL = OUTSTRING;
309  StreamingOutput stream;
310  stream = new StreamingOutput() {
311  @Override
312  public void write(OutputStream output) throws IOException, WebApplicationException {
313  try {
314  output = GZIP(OUTSTRING_FINAL, output);
315  } catch (Exception e) {
316  System.out.println(e.toString());
317  }
318  }
319  };
320  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
321  } else {
322  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
323  }
324  }
325  } else if (acceptHeader.contains("application/xml")) {
326  return Response.ok(rdf.getModel("RDF/XML")).build();
327  } else if (acceptHeader.contains("application/rdf+xml")) {
328  return Response.ok(rdf.getModel("RDF/XML")).build();
329  } else if (acceptHeader.contains("text/turtle")) {
330  return Response.ok(rdf.getModel("Turtle")).build();
331  } else if (acceptHeader.contains("text/n3")) {
332  return Response.ok(rdf.getModel("N-Triples")).build();
333  } else if (acceptHeader.contains("application/ld+json")) {
334  return Response.ok(rdf.getModel("JSON-LD")).build();
335  } else {
336  JSONObject agentObject = Transformer.agent_GET(rdf.getModel("RDF/JSON"), agent);
337  // get database properties and add to triplestore data
338  JSONObject user = SQlite.getUserInfo(agent);
339  agentObject.put("role", user.get("role"));
340  agentObject.put("status", user.get("status"));
341  String out = agentObject.toJSONString();
342  if (pretty) {
343  JsonParser parser = new JsonParser();
344  JsonObject json = parser.parse(out).getAsJsonObject();
345  Gson gson = new GsonBuilder().setPrettyPrinting().create();
346  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
347  } else {
348  OUTSTRING = out.toString();
349  if (acceptEncoding.contains("gzip")) {
350  // set outputstream
351  final String OUTSTRING_FINAL = OUTSTRING;
352  StreamingOutput stream;
353  stream = new StreamingOutput() {
354  @Override
355  public void write(OutputStream output) throws IOException, WebApplicationException {
356  try {
357  output = GZIP(OUTSTRING_FINAL, output);
358  } catch (Exception e) {
359  System.out.println(e.toString());
360  }
361  }
362  };
363  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
364  } else {
365  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
366  }
367  }
368  }
369  } catch (Exception e) {
370  if (e.toString().contains("ResourceNotAvailableException")) {
371  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
372  .header("Content-Type", "application/json;charset=UTF-8").build();
373  } else {
374  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
375  .header("Content-Type", "application/json;charset=UTF-8").build();
376  }
377  }
378  }

References Transformer.agent_GET(), GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and SQlite.getUserInfo().

◆ getAgent_JSON()

Response getAgent_JSON ( @PathParam("agent") String  agent,
@QueryParam("pretty") boolean  pretty,
@HeaderParam("Accept-Encoding") String  acceptEncoding 
) throws IOException, JDOMException, TransformerException, ParserConfigurationException
383  {
384  try {
385  String OUTSTRING = "";
386  RDF rdf = new RDF();
387  String item = "ls_age";
388  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
389  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
390  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
391  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
392  if (result.size() < 1) {
393  throw new ResourceNotAvailableException();
394  }
395  for (int i = 0; i < predicates.size(); i++) {
396  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
397  }
398  JSONObject agentObject = Transformer.agent_GET(rdf.getModel("RDF/JSON"), agent);
399  // get database properties and add to triplestore data
400  JSONObject user = SQlite.getUserInfo(agent);
401  agentObject.put("role", user.get("role"));
402  agentObject.put("status", user.get("status"));
403  String out = agentObject.toJSONString();
404  if (pretty) {
405  JsonParser parser = new JsonParser();
406  JsonObject json = parser.parse(out).getAsJsonObject();
407  Gson gson = new GsonBuilder().setPrettyPrinting().create();
408  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
409  } else {
410  OUTSTRING = out.toString();
411  if (acceptEncoding.contains("gzip")) {
412  // set outputstream
413  final String OUTSTRING_FINAL = OUTSTRING;
414  StreamingOutput stream;
415  stream = new StreamingOutput() {
416  @Override
417  public void write(OutputStream output) throws IOException, WebApplicationException {
418  try {
419  output = GZIP(OUTSTRING_FINAL, output);
420  } catch (Exception e) {
421  System.out.println(e.toString());
422  }
423  }
424  };
425  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
426  } else {
427  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
428  }
429  }
430  } catch (Exception e) {
431  if (e.toString().contains("ResourceNotAvailableException")) {
432  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
433  .header("Content-Type", "application/json;charset=UTF-8").build();
434  } else {
435  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
436  .header("Content-Type", "application/json;charset=UTF-8").build();
437  }
438  }
439  }

References Transformer.agent_GET(), GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and SQlite.getUserInfo().

◆ getAgent_XML()

Response getAgent_XML ( @PathParam("agent") String  agent) throws IOException, JDOMException, TransformerException, ParserConfigurationException
444  {
445  try {
446  RDF rdf = new RDF();
447  String item = "ls_age";
448  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
449  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
450  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
451  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
452  if (result.size() < 1) {
453  throw new ResourceNotAvailableException();
454  }
455  for (int i = 0; i < predicates.size(); i++) {
456  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
457  }
458  String RDFoutput = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + rdf.getModel("RDF/XML");
459  return Response.ok(RDFoutput).build();
460  } catch (Exception e) {
461  if (e.toString().contains("ResourceNotAvailableException")) {
462  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
463  .header("Content-Type", "application/json;charset=UTF-8").build();
464  } else {
465  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
466  .header("Content-Type", "application/json;charset=UTF-8").build();
467  }
468  }
469  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getAgentRDF_JSONLD()

Response getAgentRDF_JSONLD ( @PathParam("agent") String  agent,
@QueryParam("pretty") boolean  pretty 
) throws IOException, JDOMException, TransformerException, ParserConfigurationException
599  {
600  try {
601  RDF rdf = new RDF();
602  String item = "ls_age";
603  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
604  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
605  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
606  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
607  if (result.size() < 1) {
608  throw new ResourceNotAvailableException();
609  }
610  for (int i = 0; i < predicates.size(); i++) {
611  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
612  }
613  String out = rdf.getModel("JSON-LD");
614  if (pretty) {
615  JsonParser parser = new JsonParser();
616  JsonObject json = parser.parse(out).getAsJsonObject();
617  Gson gson = new GsonBuilder().setPrettyPrinting().create();
618  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
619  } else {
620  return Response.ok(out).header("Content-Type", "application/json;charset=UTF-8").build();
621  }
622  } catch (Exception e) {
623  if (e.toString().contains("ResourceNotAvailableException")) {
624  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
625  .header("Content-Type", "application/json;charset=UTF-8").build();
626  } else {
627  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
628  .header("Content-Type", "application/json;charset=UTF-8").build();
629  }
630  }
631  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getAgentRDF_JSONRDF()

Response getAgentRDF_JSONRDF ( @PathParam("agent") String  agent,
@QueryParam("pretty") boolean  pretty 
) throws IOException, JDOMException, TransformerException, ParserConfigurationException
562  {
563  try {
564  RDF rdf = new RDF();
565  String item = "ls_age";
566  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
567  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
568  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
569  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
570  if (result.size() < 1) {
571  throw new ResourceNotAvailableException();
572  }
573  for (int i = 0; i < predicates.size(); i++) {
574  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
575  }
576  String out = rdf.getModel("RDF/JSON");
577  if (pretty) {
578  JsonParser parser = new JsonParser();
579  JsonObject json = parser.parse(out).getAsJsonObject();
580  Gson gson = new GsonBuilder().setPrettyPrinting().create();
581  return Response.ok(gson.toJson(json)).header("Content-Type", "application/json;charset=UTF-8").build();
582  } else {
583  return Response.ok(out).header("Content-Type", "application/json;charset=UTF-8").build();
584  }
585  } catch (Exception e) {
586  if (e.toString().contains("ResourceNotAvailableException")) {
587  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
588  .header("Content-Type", "application/json;charset=UTF-8").build();
589  } else {
590  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
591  .header("Content-Type", "application/json;charset=UTF-8").build();
592  }
593  }
594  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getAgentRDF_N3()

Response getAgentRDF_N3 ( @PathParam("agent") String  agent) throws IOException, JDOMException, TransformerException, ParserConfigurationException
533  {
534  try {
535  RDF rdf = new RDF();
536  String item = "ls_age";
537  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
538  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
539  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
540  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
541  if (result.size() < 1) {
542  throw new ResourceNotAvailableException();
543  }
544  for (int i = 0; i < predicates.size(); i++) {
545  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
546  }
547  return Response.ok(rdf.getModel("N-Triples")).build();
548  } catch (Exception e) {
549  if (e.toString().contains("ResourceNotAvailableException")) {
550  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
551  .header("Content-Type", "application/json;charset=UTF-8").build();
552  } else {
553  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
554  .header("Content-Type", "application/json;charset=UTF-8").build();
555  }
556  }
557  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getAgentRDF_Turtle()

Response getAgentRDF_Turtle ( @PathParam("agent") String  agent) throws IOException, JDOMException, TransformerException, ParserConfigurationException
504  {
505  try {
506  RDF rdf = new RDF();
507  String item = "ls_age";
508  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
509  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
510  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
511  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
512  if (result.size() < 1) {
513  throw new ResourceNotAvailableException();
514  }
515  for (int i = 0; i < predicates.size(); i++) {
516  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
517  }
518  return Response.ok(rdf.getModel("Turtle")).build();
519  } catch (Exception e) {
520  if (e.toString().contains("ResourceNotAvailableException")) {
521  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
522  .header("Content-Type", "application/json;charset=UTF-8").build();
523  } else {
524  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
525  .header("Content-Type", "application/json;charset=UTF-8").build();
526  }
527  }
528  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getAgentRDF_XML()

Response getAgentRDF_XML ( @PathParam("agent") String  agent) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
474  {
475  try {
476  RDF rdf = new RDF();
477  String item = "ls_age";
478  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
479  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
480  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
481  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
482  if (result.size() < 1) {
483  throw new ResourceNotAvailableException();
484  }
485  for (int i = 0; i < predicates.size(); i++) {
486  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
487  }
488  String RDFoutput = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + rdf.getModel("RDF/XML");
489  return Response.ok(RDFoutput).build();
490  } catch (Exception e) {
491  if (e.toString().contains("ResourceNotAvailableException")) {
492  return Response.status(Response.Status.NOT_FOUND).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
493  .header("Content-Type", "application/json;charset=UTF-8").build();
494  } else {
495  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
496  .header("Content-Type", "application/json;charset=UTF-8").build();
497  }
498  }
499  }

References GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), and ConfigProperties.getPropertyParam().

◆ getAgents()

Response getAgents ( @HeaderParam("Accept") String  acceptHeader,
@HeaderParam("Accept-Encoding") String  acceptEncoding,
@QueryParam("pretty") boolean  pretty,
@QueryParam("sort") String  sort 
) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
65  {
66  try {
67  String OUTSTRING = "";
68  // QUERY STRING
69  RDF rdf = new RDF();
70  String query = rdf.getPREFIXSPARQL();
71  query += "SELECT * WHERE { "
72  + "?s ?p ?o . "
73  + "?s a ls:Agent . "
74  + "?s dc:identifier ?identifier . "
75  + "OPTIONAL { ?s foaf:accountName ?name . } " // because of sorting
76  + "OPTIONAL { ?s foaf:firstName ?firstName . } " // because of sorting
77  + "OPTIONAL { ?s foaf:lastName ?lastName . } " // because of sorting
78  + " } ";
79  // SORTING
80  List<String> sortList = new ArrayList<String>();
81  if (sort != null) {
82  String sortArray[] = sort.split(",");
83  for (String element : sortArray) {
84  if (sort != null) {
85  String sortDirection = element.substring(0, 1);
86  if (sortDirection.equals("+")) {
87  sortDirection = "ASC";
88  } else {
89  sortDirection = "DESC";
90  }
91  element = element.substring(1);
92  sortList.add(sortDirection + "(?" + element + ") ");
93  }
94  }
95  query += "ORDER BY ";
96  for (String element : sortList) {
97  query += element;
98  }
99  }
100  // QUERY TRIPLESTORE
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();
109  }
110  for (int i = 0; i < s.size(); i++) {
111  rdf.setModelTriple(s.get(i), p.get(i), o.get(i));
112  }
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);
128  // get database properties and add to triplestore data
129  JSONObject user = SQlite.getUserInfo(h);
130  tmp.put("role", user.get("role"));
131  tmp.put("status", user.get("status"));
132  outArray.add(tmp);
133  }
134  }
135  System.out.println(System.currentTimeMillis() - ctm_start);
136  if (acceptHeader.contains("application/json")) {
137  if (pretty) {
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();
142  } else {
143  OUTSTRING = outArray.toString();
144  if (acceptEncoding.contains("gzip")) {
145  // set outputstream
146  final String OUTSTRING_FINAL = OUTSTRING;
147  StreamingOutput stream;
148  stream = new StreamingOutput() {
149  @Override
150  public void write(OutputStream output) throws IOException, WebApplicationException {
151  try {
152  output = GZIP(OUTSTRING_FINAL, output);
153  } catch (Exception e) {
154  System.out.println(e.toString());
155  }
156  }
157  };
158  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
159  } else {
160  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
161  }
162  }
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")) {
166  if (pretty) {
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();
171  } else {
172  OUTSTRING = outArray.toString();
173  if (acceptEncoding.contains("gzip")) {
174  // set outputstream
175  final String OUTSTRING_FINAL = OUTSTRING;
176  StreamingOutput stream;
177  stream = new StreamingOutput() {
178  @Override
179  public void write(OutputStream output) throws IOException, WebApplicationException {
180  try {
181  output = GZIP(OUTSTRING_FINAL, output);
182  } catch (Exception e) {
183  System.out.println(e.toString());
184  }
185  }
186  };
187  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
188  } else {
189  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
190  }
191  }
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();
202  } else if (pretty) {
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();
207  } else {
208  OUTSTRING = outArray.toString();
209  if (acceptEncoding.contains("gzip")) {
210  // set outputstream
211  final String OUTSTRING_FINAL = OUTSTRING;
212  StreamingOutput stream;
213  stream = new StreamingOutput() {
214  @Override
215  public void write(OutputStream output) throws IOException, WebApplicationException {
216  try {
217  output = GZIP(OUTSTRING_FINAL, output);
218  } catch (Exception e) {
219  System.out.println(e.toString());
220  }
221  }
222  };
223  return Response.ok(stream).header("Content-Type", "application/json;charset=UTF-8").header("Content-Encoding", "gzip").build();
224  } else {
225  return Response.ok(OUTSTRING).header("Content-Type", "application/json;charset=UTF-8").build();
226  }
227  }
228  } catch (Exception e) {
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();
232  } else {
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();
235  }
236  }
237  }

References Transformer.agent_GET(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), and SQlite.getUserInfo().

◆ GZIP()

static OutputStream GZIP ( String  input,
OutputStream  baos 
) throws IOException
staticprivate
796  {
797  try (GZIPOutputStream gzos = new GZIPOutputStream(baos)) {
798  gzos.write(input.getBytes("UTF-8"));
799  } catch (Exception e) {
800  System.out.println(e.toString());
801  }
802  return baos;
803  }

◆ postAgent()

Response postAgent ( String  json) throws IOException, JDOMException, ConfigException, ParserConfigurationException, TransformerException
637  {
638  try {
639  // get variables
640  String item = "ls_age";
641  // validate
642  ValidateJSONObject.validateAgent(json);
643  // parse name
644  JSONObject jsonObject = (JSONObject) new JSONParser().parse(json);
645  String itemID = (String) jsonObject.get("id");
646  String pwd = (String) jsonObject.get("pwd");
647  // create triples
648  json = Transformer.agent_POST(json, itemID);
649  String triples = createAgentSPARQLUPDATE(item, itemID);
650  // input triples
651  RDF4J_20.inputRDFfromRDFJSONString(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), json);
652  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), triples);
653  // get result als json
654  RDF rdf = new RDF();
655  String query = GeneralFunctions.getAllElementsForItemID(item, itemID);
656  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
657  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
658  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
659  if (result.size() < 1) {
660  throw new ResourceNotAvailableException();
661  }
662  for (int i = 0; i < predicates.size(); i++) {
663  rdf.setModelTriple(item + ":" + itemID, predicates.get(i), objects.get(i));
664  }
665  JSONObject agentObject = Transformer.agent_GET(rdf.getModel("RDF/JSON"), itemID);
666  // add entry in sqlite
667  SQlite.insertUser(itemID, pwd);
668  // get database properties and add to triplestore data
669  JSONObject user = SQlite.getUserInfo(itemID);
670  agentObject.put("role", user.get("role"));
671  agentObject.put("status", user.get("status"));
672  String out = agentObject.toJSONString();
673  return Response.status(Response.Status.CREATED).entity(out).build();
674  } catch (Exception e) {
675  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
676  .header("Content-Type", "application/json;charset=UTF-8").build();
677  }
678  }

References Transformer.agent_GET(), Transformer.agent_POST(), GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), SQlite.getUserInfo(), SQlite.insertUser(), and ValidateJSONObject.validateAgent().

◆ putAgentSPARQLUPDATE()

static String putAgentSPARQLUPDATE ( String  id) throws IOException
staticprivate
767  {
768  RDF rdf = new RDF();
769  String prefixes = rdf.getPREFIXSPARQL();
770  String update = prefixes
771  + "DELETE { ?agent ?p ?o. } "
772  + "WHERE { "
773  + "?agent ?p ?o. "
774  + "?agent dc:identifier ?identifier. "
775  + "FILTER (?identifier=\"$identifier\") "
776  + "FILTER (?p IN (foaf:firstName,foaf:lastName,foaf:title,dct:publisher,dct:isPartOf)) "
777  + "}";
778  update = update.replace("$identifier", id);
779  return update;
780  }

◆ updateAgent()

Response updateAgent ( @PathParam("agent") String  agent,
String  json 
) throws IOException, JDOMException, RdfException, ParserConfigurationException, TransformerException
685  {
686  try {
687  String item = "ls_age";
688  // validate
689  ValidateJSONObject.validateAgent(json);
690  // check if resource exists
691  String queryExist = GeneralFunctions.getAllElementsForItemID(item, agent);
692  List<BindingSet> resultExist = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), queryExist);
693  if (resultExist.size() < 1) {
694  throw new ResourceNotAvailableException();
695  }
696  // insert data
697  JSONObject agentObjectOriginal = (JSONObject) new JSONParser().parse(json);
698  String status = (String) agentObjectOriginal.get("status");
699  json = Transformer.agent_POST(json, agent);
700  RDF4J_20.SPARQLupdate(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), putAgentSPARQLUPDATE(agent));
701  RDF4J_20.inputRDFfromRDFJSONString(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), json);
702  // get result als json
703  RDF rdf = new RDF();
704  String query = GeneralFunctions.getAllElementsForItemID(item, agent);
705  List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam("repository"), ConfigProperties.getPropertyParam("ts_server"), query);
706  List<String> predicates = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "p");
707  List<String> objects = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result, "o");
708  if (result.size() < 1) {
709  throw new ResourceNotAvailableException();
710  }
711  for (int i = 0; i < predicates.size(); i++) {
712  rdf.setModelTriple(item + ":" + agent, predicates.get(i), objects.get(i));
713  }
714  JSONObject agentObject = Transformer.agent_GET(rdf.getModel("RDF/JSON"), agent);
715  // change status in sqlite
716  if (status.equals("active")) {
717  SQlite.activateUser(agent);
718  } else {
719  SQlite.deactivateUser(agent);
720  }
721  // get database properties and add to triplestore data
722  JSONObject user = SQlite.getUserInfo(agent);
723  agentObject.put("role", user.get("role"));
724  agentObject.put("status", user.get("status"));
725  String out = agentObject.toJSONString();
726  return Response.status(Response.Status.CREATED).entity(out).build();
727  } catch (Exception e) {
728  return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e, "v1.rest.AgentsResource"))
729  .header("Content-Type", "application/json;charset=UTF-8").build();
730  }
731  }

References SQlite.activateUser(), Transformer.agent_GET(), Transformer.agent_POST(), SQlite.deactivateUser(), GeneralFunctions.getAllElementsForItemID(), Logging.getMessageJSON(), ConfigProperties.getPropertyParam(), SQlite.getUserInfo(), and ValidateJSONObject.validateAgent().

v1.rest.AgentsResource.putAgentSPARQLUPDATE
static String putAgentSPARQLUPDATE(String id)
Definition: AgentsResource.java:767
v1.rest.AgentsResource.GZIP
static OutputStream GZIP(String input, OutputStream baos)
Definition: AgentsResource.java:796
rdf
Definition: RDF.java:1
v1.rest.AgentsResource.deleteAgentSPARQLUPDATE
static String deleteAgentSPARQLUPDATE(String id)
Definition: AgentsResource.java:782
Exception
v1.rest.AgentsResource.createAgentSPARQLUPDATE
static String createAgentSPARQLUPDATE(String item, String itemid)
Definition: AgentsResource.java:756