72 String OUTSTRING =
"";
75 String query =
rdf.getPREFIXSPARQL();
76 query +=
"SELECT * WHERE { "
78 +
"?s a ls:Vocabulary . "
79 +
"?s dc:identifier ?identifier . "
80 +
"OPTIONAL { ?s dc:creator ?creator . } "
81 +
"OPTIONAL { ?s dc:title ?title . } ";
84 query +=
"?s ls:hasReleaseType ls:Public . ";
86 if (creator !=
null) {
87 query +=
"FILTER(?creator=\"" + creator +
"\") ";
89 if (releaseType !=
null) {
90 query +=
"FILTER(?releaseType=<" +
rdf.getPrefixItem(
"ls:" + releaseType) +
">) ";
94 List<String> sortList =
new ArrayList<String>();
96 String sortArray[] = sort.split(
",");
97 for (String element : sortArray) {
99 String sortDirection = element.substring(0, 1);
100 if (sortDirection.equals(
"+")) {
101 sortDirection =
"ASC";
103 sortDirection =
"DESC";
105 element = element.substring(1);
106 sortList.add(sortDirection +
"(?" + element +
") ");
109 query +=
"ORDER BY ";
110 for (String element : sortList) {
115 if (limit !=
null && offset !=
null) {
116 query +=
"LIMIT " + limit +
" OFFSET " + offset;
119 long ctm_start = System.currentTimeMillis();
120 List<BindingSet> result = RDF4J_20.SPARQLquery(ConfigProperties.getPropertyParam(
"repository"), ConfigProperties.getPropertyParam(
"ts_server"), query);
121 List<String> s = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"s");
122 List<String> p = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"p");
123 List<String> o = RDF4J_20.getValuesFromBindingSet_ORDEREDLIST(result,
"o");
124 if (result.size() < 1) {
125 throw new ResourceNotAvailableException(
"resource is not available");
127 for (
int i = 0; i < s.size(); i++) {
128 rdf.setModelTriple(s.get(i), p.get(i), o.get(i));
130 JSONArray outArray =
new JSONArray();
131 if (acceptHeader.contains(
"application/json") || acceptHeader.contains(
"text/html")) {
132 JSONObject jsonObject = (JSONObject)
new JSONParser().parse(
rdf.getModel(
"RDF/JSON"));
133 Set keys = jsonObject.keySet();
134 Iterator a = keys.iterator();
135 while (a.hasNext()) {
136 String key = (String) a.next();
137 JSONObject tmpObject = (JSONObject) jsonObject.get(key);
138 JSONArray idArray = (JSONArray) tmpObject.get(
rdf.getPrefixItem(
"dc:identifier"));
139 JSONObject idObject = (JSONObject) idArray.get(0);
140 String h = (String) idObject.get(
"value");
141 JSONObject tmpObject2 =
new JSONObject();
142 tmpObject2.put(key, tmpObject);
143 String hh = tmpObject2.toString();
144 JSONObject tmp = Transformer.vocabulary_GET(hh, h, fields, statistics, creatorInfo);
148 if (acceptHeader.contains(
"application/json")) {
150 JsonParser parser =
new JsonParser();
151 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
152 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
153 return Response.ok(gson.toJson(json)).build();
155 OUTSTRING = outArray.toString();
156 if (acceptEncoding.contains(
"gzip")) {
158 final String OUTSTRING_FINAL = OUTSTRING;
159 StreamingOutput stream;
160 stream =
new StreamingOutput() {
162 public void write(OutputStream output)
throws IOException, WebApplicationException {
164 output =
GZIP(OUTSTRING_FINAL, output);
166 System.out.println(e.toString());
170 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
172 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
175 }
else if (acceptHeader.contains(
"application/rdf+json")) {
176 return Response.ok(
rdf.getModel(
"RDF/JSON")).header(
"Content-Type",
"application/json;charset=UTF-8").build();
177 }
else if (acceptHeader.contains(
"text/html")) {
179 JsonParser parser =
new JsonParser();
180 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
181 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
182 return Response.ok(gson.toJson(json)).header(
"Content-Type",
"application/json;charset=UTF-8").build();
184 OUTSTRING = outArray.toString();
185 if (acceptEncoding.contains(
"gzip")) {
187 final String OUTSTRING_FINAL = OUTSTRING;
188 StreamingOutput stream;
189 stream =
new StreamingOutput() {
191 public void write(OutputStream output)
throws IOException, WebApplicationException {
193 output =
GZIP(OUTSTRING_FINAL, output);
195 System.out.println(e.toString());
199 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
201 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
204 }
else if (acceptHeader.contains(
"application/xml")) {
205 return Response.ok(
rdf.getModel(
"RDF/XML")).build();
206 }
else if (acceptHeader.contains(
"application/rdf+xml")) {
207 return Response.ok(
rdf.getModel(
"RDF/XML")).build();
208 }
else if (acceptHeader.contains(
"text/turtle")) {
209 return Response.ok(
rdf.getModel(
"Turtle")).build();
210 }
else if (acceptHeader.contains(
"text/n3")) {
211 return Response.ok(
rdf.getModel(
"N-Triples")).build();
212 }
else if (acceptHeader.contains(
"application/ld+json")) {
213 return Response.ok(
rdf.getModel(
"JSON-LD")).build();
215 JsonParser parser =
new JsonParser();
216 JsonObject json = parser.parse(outArray.toString()).getAsJsonObject();
217 Gson gson =
new GsonBuilder().setPrettyPrinting().create();
218 return Response.ok(gson.toJson(json)).header(
"Content-Type",
"application/json;charset=UTF-8").build();
220 OUTSTRING = outArray.toString();
221 if (acceptEncoding.contains(
"gzip")) {
223 final String OUTSTRING_FINAL = OUTSTRING;
224 StreamingOutput stream;
225 stream =
new StreamingOutput() {
227 public void write(OutputStream output)
throws IOException, WebApplicationException {
229 output =
GZIP(OUTSTRING_FINAL, output);
231 System.out.println(e.toString());
235 return Response.ok(stream).header(
"Content-Type",
"application/json;charset=UTF-8").header(
"Content-Encoding",
"gzip").build();
237 return Response.ok(OUTSTRING).header(
"Content-Type",
"application/json;charset=UTF-8").build();
241 if (e.toString().contains(
"ResourceNotAvailableException")) {
242 JSONArray outArray =
new JSONArray();
243 return Response.ok(outArray).header(
"Content-Type",
"application/json;charset=UTF-8").build();
245 return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Logging.getMessageJSON(e,
"v1.rest.VocabsResource"))
246 .header(
"Content-Type",
"application/json;charset=UTF-8").build();