Added full support for hierarchical mode
This commit is contained in:
parent
a7c89cded0
commit
a19c3dbf87
|
@ -48,7 +48,7 @@ import com.tinkerpop.blueprints.Direction;
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
*/
|
*/
|
||||||
@Path(AccessPath.ACCESS_PATH_PART)
|
@Path(AccessPath.ACCESS_PATH_PART)
|
||||||
public class Access {
|
public class Access extends BaseRest {
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(Access.class);
|
private static Logger logger = LoggerFactory.getLogger(Access.class);
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ public class Access {
|
||||||
@QueryParam(AccessPath.POLYMORPHIC_PARAM) @DefaultValue("true") Boolean polymorphic)
|
@QueryParam(AccessPath.POLYMORPHIC_PARAM) @DefaultValue("true") Boolean polymorphic)
|
||||||
throws NotFoundException, ResourceRegistryException {
|
throws NotFoundException, ResourceRegistryException {
|
||||||
logger.info("Requested all {}instances of {}", polymorphic ? AccessPath.POLYMORPHIC_PARAM + " " : "", type);
|
logger.info("Requested all {}instances of {}", polymorphic ? AccessPath.POLYMORPHIC_PARAM + " " : "", type);
|
||||||
|
setHierarchicalMode();
|
||||||
/*
|
/*
|
||||||
List<String> pathValues = new ArrayList<>();
|
List<String> pathValues = new ArrayList<>();
|
||||||
pathValues.add(AccessPath.INSTANCES_PATH_PART);
|
pathValues.add(AccessPath.INSTANCES_PATH_PART);
|
||||||
|
@ -207,8 +207,9 @@ public class Access {
|
||||||
@Produces(ResourceInitializer.APPLICATION_JSON_CHARSET_UTF_8)
|
@Produces(ResourceInitializer.APPLICATION_JSON_CHARSET_UTF_8)
|
||||||
public Response instanceExists(@PathParam(AccessPath.TYPE_PATH_PARAM) String type,
|
public Response instanceExists(@PathParam(AccessPath.TYPE_PATH_PARAM) String type,
|
||||||
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
||||||
|
|
||||||
logger.info("Requested to check if {} with id {} exists", type, uuid);
|
logger.info("Requested to check if {} with id {} exists", type, uuid);
|
||||||
|
setHierarchicalMode();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
List<String> pathValues = new ArrayList<>();
|
List<String> pathValues = new ArrayList<>();
|
||||||
pathValues.add(AccessPath.INSTANCES_PATH_PART);
|
pathValues.add(AccessPath.INSTANCES_PATH_PART);
|
||||||
|
@ -252,6 +253,8 @@ public class Access {
|
||||||
public String getInstance(@PathParam(AccessPath.TYPE_PATH_PARAM) String type,
|
public String getInstance(@PathParam(AccessPath.TYPE_PATH_PARAM) String type,
|
||||||
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
||||||
logger.info("Requested to read {} with id {}", type, uuid);
|
logger.info("Requested to read {} with id {}", type, uuid);
|
||||||
|
setHierarchicalMode();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
List<String> pathValues = new ArrayList<>();
|
List<String> pathValues = new ArrayList<>();
|
||||||
pathValues.add(AccessPath.INSTANCES_PATH_PART);
|
pathValues.add(AccessPath.INSTANCES_PATH_PART);
|
||||||
|
@ -300,6 +303,7 @@ public class Access {
|
||||||
@QueryParam(AccessPath.RAW_PARAM) @DefaultValue(AccessPath.DEFAULT_RAW_PARAM) Boolean raw)
|
@QueryParam(AccessPath.RAW_PARAM) @DefaultValue(AccessPath.DEFAULT_RAW_PARAM) Boolean raw)
|
||||||
throws InvalidQueryException {
|
throws InvalidQueryException {
|
||||||
logger.info("Requested query (fetch plan {}, limit : {}, Raw : raw):\n{}", fetchPlan, limit, query, raw);
|
logger.info("Requested query (fetch plan {}, limit : {}, Raw : raw):\n{}", fetchPlan, limit, query, raw);
|
||||||
|
setHierarchicalMode();
|
||||||
//setRESTCalledMethodLocal(HTTPMETHOD.GET, AccessPath.QUERY_PATH_PART);
|
//setRESTCalledMethodLocal(HTTPMETHOD.GET, AccessPath.QUERY_PATH_PART);
|
||||||
CalledMethodProvider.instance.set("rawQuery");
|
CalledMethodProvider.instance.set("rawQuery");
|
||||||
|
|
||||||
|
@ -347,6 +351,7 @@ public class Access {
|
||||||
|
|
||||||
logger.info("Requested {} instances having a(n) {} ({}={}} with {} ({}={})", resourcetype, relationType,
|
logger.info("Requested {} instances having a(n) {} ({}={}} with {} ({}={})", resourcetype, relationType,
|
||||||
AccessPath.DIRECTION_PARAM, direction, referenceType, AccessPath.POLYMORPHIC_PARAM, polymorphic);
|
AccessPath.DIRECTION_PARAM, direction, referenceType, AccessPath.POLYMORPHIC_PARAM, polymorphic);
|
||||||
|
setHierarchicalMode();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
List<String> pathValues = new ArrayList<>();
|
List<String> pathValues = new ArrayList<>();
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package org.gcube.informationsystem.resourceregistry.rest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
|
import javax.ws.rs.core.UriInfo;
|
||||||
|
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.rest.InstancePath;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class BaseRest {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(InstancesManager.class);
|
||||||
|
|
||||||
|
@Context
|
||||||
|
protected UriInfo uriInfo;
|
||||||
|
|
||||||
|
protected void setHierarchicalMode() {
|
||||||
|
try {
|
||||||
|
List<String> hierarchicalQueryParameterList = uriInfo.getQueryParameters().get(InstancePath.HIERARCHICAL_MODE_PARAM);
|
||||||
|
if(hierarchicalQueryParameterList!=null && hierarchicalQueryParameterList.size()>0) {
|
||||||
|
String hierarchicalBooleanString = hierarchicalQueryParameterList.get(0);
|
||||||
|
boolean hierarchical = Boolean.valueOf(hierarchicalBooleanString);
|
||||||
|
if(hierarchical) {
|
||||||
|
logger.info("The request was performed in hierarchical mode. Going to set it.");
|
||||||
|
ContextUtility.getHierarchicalMode().set(hierarchical);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Throwable t) {
|
||||||
|
logger.warn("Unable to properly set the Hierarchical Mode is set", t.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
*/
|
*/
|
||||||
@Path(InstancePath.INSTANCES_PATH_PART)
|
@Path(InstancePath.INSTANCES_PATH_PART)
|
||||||
public class InstancesManager {
|
public class InstancesManager extends BaseRest {
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(InstancesManager.class);
|
private static Logger logger = LoggerFactory.getLogger(InstancesManager.class);
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ public class InstancesManager {
|
||||||
@QueryParam(InstancePath.POLYMORPHIC_PARAM) @DefaultValue("true") Boolean polymorphic)
|
@QueryParam(InstancePath.POLYMORPHIC_PARAM) @DefaultValue("true") Boolean polymorphic)
|
||||||
throws NotFoundException, ResourceRegistryException {
|
throws NotFoundException, ResourceRegistryException {
|
||||||
logger.info("Requested all {}instances of {}", polymorphic ? InstancePath.POLYMORPHIC_PARAM + " " : "", type);
|
logger.info("Requested all {}instances of {}", polymorphic ? InstancePath.POLYMORPHIC_PARAM + " " : "", type);
|
||||||
|
setHierarchicalMode();
|
||||||
/*
|
/*
|
||||||
Map<String,String> map = new HashMap<String,String>();
|
Map<String,String> map = new HashMap<String,String>();
|
||||||
map.put(InstancePath.POLYMORPHIC_PARAM, polymorphic.toString());
|
map.put(InstancePath.POLYMORPHIC_PARAM, polymorphic.toString());
|
||||||
|
@ -94,6 +95,7 @@ public class InstancesManager {
|
||||||
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
||||||
logger.info("Requested to check if {} with id {} exists", type, uuid);
|
logger.info("Requested to check if {} with id {} exists", type, uuid);
|
||||||
//setRESTCalledMethod(HTTPMETHOD.HEAD, type, true);
|
//setRESTCalledMethod(HTTPMETHOD.HEAD, type, true);
|
||||||
|
setHierarchicalMode();
|
||||||
CalledMethodProvider.instance.set("existInstance");
|
CalledMethodProvider.instance.set("existInstance");
|
||||||
|
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
|
@ -130,6 +132,7 @@ public class InstancesManager {
|
||||||
public String read(@PathParam(AccessPath.TYPE_PATH_PARAM) String type,
|
public String read(@PathParam(AccessPath.TYPE_PATH_PARAM) String type,
|
||||||
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
@PathParam(AccessPath.UUID_PATH_PARAM) String uuid) throws NotFoundException, ResourceRegistryException {
|
||||||
logger.info("Requested to read {} with id {}", type, uuid);
|
logger.info("Requested to read {} with id {}", type, uuid);
|
||||||
|
setHierarchicalMode();
|
||||||
// setRESTCalledMethod(HTTPMETHOD.GET, type, true);
|
// setRESTCalledMethod(HTTPMETHOD.GET, type, true);
|
||||||
CalledMethodProvider.instance.set("readInstance");
|
CalledMethodProvider.instance.set("readInstance");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue