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;
* @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
public ClientResponse<RelationList> getRelationList() {
return relationProxy.getRelationList();
}
-
+
+ public ClientResponse<RelationList> getRelationList_SPO(String subjectCsid,
+ String predicate,
+ String objectCsid) {
+ return relationProxy.getRelationList_SPO(subjectCsid, predicate, objectCsid);
+ }
+
/**
* @param csid
* @return
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;
@GET
ClientResponse<RelationList> getRelationList();
+
+ @GET
+ @Path("subject/{subjectCsid}/type/{predicate}/object/{objectCsid}")
+ ClientResponse<RelationList> getRelationList_SPO(@PathParam("subjectCsid") String subjectCsid,
+ @PathParam("predicate") String predicate,
+ @PathParam("objectCsid") String objectCsid);
//(C)reate
@POST