From ead6829c3277e58952805effe312888ccbe26221 Mon Sep 17 00:00:00 2001 From: Richard Millet Date: Tue, 11 Aug 2009 04:35:28 +0000 Subject: [PATCH] CSPACE-271: Added Java API call for getting relation lists with params. --- .../services/client/RelationClient.java | 63 ++++++++++--------- .../services/client/RelationProxy.java | 8 +++ 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java index a9efddc08..7637b162c 100644 --- a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java +++ b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java @@ -1,6 +1,9 @@ package org.collectionspace.services.client; +import javax.ws.rs.PathParam; +import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; import org.collectionspace.services.relation.Relation; import org.collectionspace.services.relation.RelationList; @@ -15,42 +18,36 @@ import org.jboss.resteasy.spi.ResteasyProviderFactory; * @version $Revision:$ */ -public class RelationClient extends BaseServiceClient { +public class RelationClient extends BaseServiceClient implements RelationProxy { - /** - * - */ - private static final RelationClient instance = new RelationClient(); /** * */ private RelationProxy relationProxy; /** - * - * Default constructor for RelationClient class. - * - */ - private RelationClient() { - ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); - RegisterBuiltin.register(factory); - if(useAuth()){ - relationProxy = ProxyFactory.create(RelationProxy.class, - getBaseURL(), getHttpClient()); - }else{ - relationProxy = ProxyFactory.create(RelationProxy.class, - getBaseURL()); - } - } - - /** - * FIXME Comment this - * - * @return - */ - public static RelationClient getInstance() { - return instance; - } + * + * Default constructor for CollectionObjectClient class. + * + */ + public RelationClient() { + ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); + RegisterBuiltin.register(factory); + setProxy(); + } + + /** + * allow to reset proxy as per security needs + */ + public void setProxy() { + if(useAuth()){ + relationProxy = ProxyFactory.create(RelationProxy.class, + getBaseURL(), getHttpClient()); + }else{ + relationProxy = ProxyFactory.create(RelationProxy.class, + getBaseURL()); + } + } /** * @return @@ -59,7 +56,13 @@ public class RelationClient extends BaseServiceClient { public ClientResponse getRelationList() { return relationProxy.getRelationList(); } - + + public ClientResponse getRelationList_SPO(String subjectCsid, + String predicate, + String objectCsid) { + return relationProxy.getRelationList_SPO(subjectCsid, predicate, objectCsid); + } + /** * @param csid * @return diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java index bc075cec1..7149f9df2 100644 --- a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java +++ b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java @@ -8,7 +8,9 @@ import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; import org.collectionspace.services.relation.Relation; import org.collectionspace.services.relation.RelationList; @@ -24,6 +26,12 @@ public interface RelationProxy { @GET ClientResponse getRelationList(); + + @GET + @Path("subject/{subjectCsid}/type/{predicate}/object/{objectCsid}") + ClientResponse getRelationList_SPO(@PathParam("subjectCsid") String subjectCsid, + @PathParam("predicate") String predicate, + @PathParam("objectCsid") String objectCsid); //(C)reate @POST -- 2.47.3