/**
*
*/
package org.ariadne_eu.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import org.apache.log4j.Logger;
import org.ariadne_eu.metadata.query.QueryMetadataException;
import org.ariadne_eu.metadata.query.QueryMetadataFactory;
import org.ariadne_eu.metadata.query.language.QueryTranslationException;
import org.ariadne_eu.metadata.query.language.TranslateLanguage;
import org.ariadne_eu.metadata.resultsformat.TranslateResultsformat;
import com.sun.jersey.spi.resource.Singleton;
/**
* @author gonzalo
*
*/
@Singleton
@Path("/icoper")
public class ICOPERImplementation {
private static Logger log = Logger.getLogger(ICOPERImplementation.class);
//
//getLearningOpportunities: not going to be exposed!
//
// renamed from: getLearningOutcomeDefinitions
@GET @Path("/getLearningOutcomes")
@Produces("application/json")
public String getLearningOutcomes(@QueryParam("q") String query, @QueryParam("pn") int page_number, @QueryParam("ps") int page_size) {
int start = 1;
if (query.equalsIgnoreCase("")) {
query = "learningoutcome.solr = \"all\"";
}
if (page_size < 1) {
page_size = 10;
}
if (page_number >= 1)
start = ((page_number-1) * page_size) + 1;
log.info("getLearningOutcomes: query=" + query + ", start=" + start + ", page_size=" + page_size);
String fullquery = query;
try {
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.PLQL1).query(fullquery, start, page_size, TranslateResultsformat.ILCJS);
return result;
} catch (QueryTranslationException e) {
log.error("getLearningOutcomes: QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getLearningOutcomes: QueryMetadataException", e);
}
return "";
}
//same
@GET @Path("/getTeachingMethods")
@Produces("application/json")
public String getTeachingMethods(@QueryParam("q") String query, @QueryParam("p n") int page_number, @QueryParam("ps") int page_size) {
if (query.equalsIgnoreCase("")) {
query = "lom.solr = \"all\"";
}
if (page_size < 1) {
page_size = 10;
}
int start = 1;
if (page_number > 1)
start = ((page_number-1) * page_size) + 1;
log.info("getTeachingMethods: query=" + query + ", page_number=" + page_number + ", page_size=" + page_size);
try {
String lQuery = TranslateLanguage.translateToQuery(query, TranslateLanguage.PLQL1, TranslateLanguage.LUCENE, start, page_size, TranslateResultsformat.ICJS);
String fullquery = "(lom.educational.learningresourcetype.value : \"teaching method\" OR lom.educational.learningresourcetype.value : \"assessment method\") AND " + lQuery;
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, start, page_size, TranslateResultsformat.ICJS);
return result;
} catch (QueryTranslationException e) {
log.error("getTeachingMethods:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getTeachingMethods:QueryMetadataException", e);
}
return "";
}
//same
@GET @Path("/getLearningDesigns")
@Produces("application/json")
public String getLearningDesigns(@QueryParam("q") String query, @QueryParam("pn") int page_number, @QueryParam("ps") int page_size) {
if (query.equalsIgnoreCase("")) {
query = "lom.solr = \"all\"";
}
if (page_size < 1) {
page_size = 10;
}
int start = 1;
if (page_number > 1)
start = ((page_number-1) * page_size) + 1;
log.info("getLearningDesigns: query=" + query + ", start=" + start + ", page_size=" + page_size);
try {
String lQuery = TranslateLanguage.translateToQuery(query, TranslateLanguage.PLQL1, TranslateLanguage.LUCENE, start, page_size, TranslateResultsformat.ICJS);
String fullquery = "lom.educational.learningresourcetype.value : \"learning design\" AND " + lQuery;
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, start, page_size, TranslateResultsformat.ICJS);
return result;
} catch (QueryTranslationException e) {
log.error("getLearningDesigns: QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getLearningDesigns: QueryMetadataException", e);
}
return "";
}
// renamed from: getLearningResources
@GET @Path("/getLearningContent")
@Produces("application/json")
public String getLearningContent(@QueryParam("q") String query, @QueryParam("pn") int page_number, @QueryParam("ps") int page_size) {
if (query.equalsIgnoreCase("")) {
query = "lom.solr = \"all\"";
}
if (page_size < 1) {
page_size = 10;
}
int start = 1;
if (page_number > 1)
start = ((page_number-1) * page_size) + 1;
log.info("getLearningContent: query=" + query + ", start=" + start + ", page_size=" + page_size);
try {
String lQuery = TranslateLanguage.translateToQuery(query, TranslateLanguage.PLQL1, TranslateLanguage.LUCENE, start, page_size, TranslateResultsformat.ICJS);
String fullquery = "(lom.educational.learningresourcetype.value:\"teaching method\"" +
" OR lom.educational.learningresourcetype.value:\"assessment method\"" +
" OR lom.educational.learningresourcetype.value:\"learning design\"" +
" OR lom.educational.learningresourcetype.value:\"learner assessment\"" +
" OR lom.educational.learningresourcetype.value:\"learning assessment\"" +
" OR lom.educational.learningresourcetype.value:\"assessment resource\"" +
" OR lom.educational.learningresourcetype.value:\"assessment design\"" +
" OR lom.educational.learningresourcetype.value:\"other\")" +
" AND " + lQuery;
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, start, page_size, TranslateResultsformat.ICJS);
return result;
} catch (QueryTranslationException e) {
log.error("getLearningContent: QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getLearningContent: QueryMetadataException", e);
}
return "";
}
// renamed from: getLearnerAssessments
//OR lom.educational.learningresourcetype.value : \"learner assessment\"
@GET @Path("/getAssessmentsDesigns")
@Produces("application/json")
public String getAssessmentsDesigns(@QueryParam("q") String query, @QueryParam("pn") int page_number, @QueryParam("ps") int page_size) {
if (query.equalsIgnoreCase("")) {
query = "lom.solr = \"all\"";
}
int start = 1;
if (page_number > 1)
start = page_number * page_size;
log.info("getAssessmentsDesigns: query=" + query + ", start=" + start + ", page_size=" + page_size);
try {
String lQuery = TranslateLanguage.translateToQuery(query, TranslateLanguage.PLQL1, TranslateLanguage.LUCENE, start, page_size, TranslateResultsformat.ICJS);
String fullquery = "(lom.educational.learningresourcetype.value : \"assessment design\") AND " + lQuery;
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, start, page_size, TranslateResultsformat.ICJS);
return result;
} catch (QueryTranslationException e) {
log.error("getAssessmentsResources: QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getAssessmentsResources: QueryMetadataException", e);
}
return "";
}
// renamed from: getLearnerAssessments
//OR lom.educational.learningresourcetype.value : \"learner assessment\"
@GET @Path("/getAssessmentsResources")
@Produces("application/json")
public String getAssessmentsResources(@QueryParam("q") String query, @QueryParam("pn") int page_number, @QueryParam("ps") int page_size) {
if (query.equalsIgnoreCase("")) {
query = "lom.solr = \"all\"";
}
int start = 1;
if (page_number > 1)
start = page_number * page_size;
log.info("getAssessmentsResources: query=" + query + ", start=" + start + ", page_size=" + page_size);
try {
String lQuery = TranslateLanguage.translateToQuery(query, TranslateLanguage.PLQL1, TranslateLanguage.LUCENE, start, page_size, TranslateResultsformat.ICJS);
String fullquery = "(lom.educational.learningresourcetype.value : \"assessment resource\") AND " + lQuery;
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, start, page_size, TranslateResultsformat.ICJS);
return result;
} catch (QueryTranslationException e) {
log.error("getAssessmentsResources: QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getAssessmentsResources: QueryMetadataException", e);
}
return "";
}
@GET @Path("/getAssessmentMethods")
@Produces("application/json")
public String getAssessmentMethods(@QueryParam("q") String query, @QueryParam("pn") int page_number, @QueryParam("ps") int page_size) {
if (query.equalsIgnoreCase("")) {
query = "lom.solr = \"all\"";
}
if (page_size < 1) {
page_size = 10;
}
int start = 1;
if (page_number > 1)
start = ((page_number-1) * page_size) + 1;
log.info("getAssessmentMethods: query=" + query + ", page_number=" + page_number + ", page_size=" + page_size);
try {
String lQuery = TranslateLanguage.translateToQuery(query, TranslateLanguage.PLQL1, TranslateLanguage.LUCENE, start, page_size, TranslateResultsformat.ICJS);
String fullquery = "lom.educational.learningresourcetype.value : \"assessment method\" AND " + lQuery;
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, start, page_size, TranslateResultsformat.ICJS);
return result;
} catch (QueryTranslationException e) {
log.error("getAssessmentMethods:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getAssessmentMethods:QueryMetadataException", e);
}
return "";
}
//TODO: metadataIdentifier not implemented
@GET @Path("/getMetadata")
@Produces("application/json")
public String getMetadata(@QueryParam("objId") String objectIdentifier, @QueryParam("mdId") String metadataIdentifier) {
if (objectIdentifier.equalsIgnoreCase("")) {
log.error("getMetadata: Not a valid object identifier");
return "";
}
log.info("getMetadata: objectIdentifier="+objectIdentifier+", metadataIdentifier="+metadataIdentifier);
try {
// String fullquery = "lom.metametadata.identifier.entry : \"" + objectIdentifier + "\" OR key : \"" + objectIdentifier + "\"";
String fullquery = "key : \"" + objectIdentifier + "\"";
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, 1, 1, TranslateResultsformat.IJS);
return result;
} catch (QueryTranslationException e) {
log.error("getMetadata:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getMetadata:QueryMetadataException", e);
}
return "";
}
}