86 String OUTSTRING =
"";
89 List<RetcatItem> retcatlist = LocalRetcatItems.getLocalCatalogue();
90 String query =
rdf.getPREFIXSPARQL();
91 query +=
"SELECT ?s ?p ?o WHERE { "
94 +
"?s dc:identifier ?identifier . "
95 +
"OPTIONAL { ?s dc:creator ?creator . } "
96 +
"OPTIONAL { ?s skos:prefLabel ?prefLabel . } "
97 +
"?s skos:inScheme ?vocab . "
98 +
"OPTIONAL { ?s ls:hasContext ?context . } ";
101 if (draft.equals(
"false")) {
102 query +=
"?vocab ls:hasReleaseType ls:Public . ";
105 query +=
"?vocab ls:hasReleaseType ls:Public . ";
107 if (creator !=
null) {
108 query +=
"FILTER(?creator=\"" + creator +
"\") ";
111 query +=
"FILTER(?vocab=<" +
rdf.getPrefixItem(
"ls_voc:" + vocab) +
">) ";
115 List<String> sortList =
new ArrayList<String>();
117 String sortArray[] = sort.split(
",");
118 for (String element : sortArray) {
120 String sortDirection = element.substring(0, 1);
121 if (sortDirection.equals(
"+")) {
122 sortDirection =
"ASC";
124 sortDirection =
"DESC";
126 element = element.substring(1);
127 sortList.add(sortDirection +
"(?" + element +
") ");
130 query +=
"ORDER BY ";
131 for (String element : sortList) {
136 if (limit !=
null && offset !=
null) {
137 query +=
"LIMIT " + limit +
" OFFSET " + offset;
140 long ctm_start = System.currentTimeMillis();
141 List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam(
"repository"), ConfigProperties.getPropertyParam(
"ts_server"), query);
142 List<String> s = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"s");
143 List<String> p = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"p");
144 List<String> o = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"o");
145 if (result.size() < 1) {
146 throw new ResourceNotAvailableException(
"resource is not available");
148 for (
int i = 0; i < s.size(); i++) {
149 rdf.setModelTriple(s.get(i), p.get(i), o.get(i));
154 JSONArray outArray =
new JSONArray();
155 if (acceptHeader.contains(
"application/json") || acceptHeader.contains(
"text/html")) {
156 JSONObject jsonObject = (JSONObject)
new JSONParser().parse(
rdf.getModel(
"RDF/JSON"));
157 Set keys = jsonObject.keySet();
158 Iterator a = keys.iterator();
159 while (a.hasNext()) {
160 String key = (String) a.next();
161 JSONObject tmpObject = (JSONObject) jsonObject.get(key);
162 JSONArray idArray = (JSONArray) tmpObject.get(
rdf.getPrefixItem(
"dc:identifier"));
163 JSONObject idObject = (JSONObject) idArray.get(0);
164 String h = (String) idObject.get(
"value");
165 JSONObject tmpObject2 =
new JSONObject();
166 tmpObject2.put(key, tmpObject);
167 String hh = tmpObject2.toString();
168 JSONObject tmp = Transformer.label_GET(hh, h, fields, retcatlist, equalConcepts, revisions, creatorInfo, inheritFromVocab);
172 if (acceptHeader.contains(
"application/json")) {
174 JsonParser parser =
new JsonParser();
175 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
176 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
177 return Response.ok(gson.toJson(json)).build();
179 OUTSTRING = outArray.toString();
180 if (acceptEncoding.contains(
"gzip")) {
182 final String OUTSTRING_FINAL = OUTSTRING;
183 StreamingOutput stream;
184 stream =
new StreamingOutput() {
186 public void write(OutputStream output)
throws IOException, WebApplicationException {
188 output =
GZIP(OUTSTRING_FINAL, output);
190 System.out.println(e.toString());
194 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
196 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
199 }
else if (acceptHeader.contains(
"application/rdf+json")) {
200 return Response.ok(
rdf.getModel(
"RDF/JSON")).header(
"Content-Type",
"application/json;charset=UTF-8").build();
201 }
else if (acceptHeader.contains(
"text/html")) {
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();
228 }
else if (acceptHeader.contains(
"application/xml")) {
229 return Response.ok(
rdf.getModel(
"RDF/XML")).build();
230 }
else if (acceptHeader.contains(
"application/rdf+xml")) {
231 return Response.ok(
rdf.getModel(
"RDF/XML")).build();
232 }
else if (acceptHeader.contains(
"text/turtle")) {
233 return Response.ok(
rdf.getModel(
"Turtle")).build();
234 }
else if (acceptHeader.contains(
"text/n3")) {
235 return Response.ok(
rdf.getModel(
"N-Triples")).build();
236 }
else if (acceptHeader.contains(
"application/ld+json")) {
237 return Response.ok(
rdf.getModel(
"JSON-LD")).build();
239 JsonParser parser =
new JsonParser();
240 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
241 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
242 return Response.ok(gson.toJson(json)).header(
"Content-Type",
"application/json;charset=UTF-8").build();
244 OUTSTRING = outArray.toString();
245 if (acceptEncoding.contains(
"gzip")) {
247 final String OUTSTRING_FINAL = OUTSTRING;
248 StreamingOutput stream;
249 stream =
new StreamingOutput() {
251 public void write(OutputStream output)
throws IOException, WebApplicationException {
253 output =
GZIP(OUTSTRING_FINAL, output);
255 System.out.println(e.toString());
259 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
261 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
265 if (e.toString().contains(
"ResourceNotAvailableException")) {
266 JSONArray outArray =
new JSONArray();
267 return Response.ok(outArray).header(
"Content-Type",
"application/json;charset=UTF-8").build();
269 return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e,
"v1.rest.LabelsResource"))
270 .header(
"Content-Type",
"application/json;charset=UTF-8").build();