47 lines
1.3 KiB
Java
47 lines
1.3 KiB
Java
|
package org.gcube.common.storagehub.client.proxies;
|
||
|
|
||
|
import java.util.List;
|
||
|
|
||
|
import javax.ws.rs.client.Invocation;
|
||
|
import javax.ws.rs.client.WebTarget;
|
||
|
import javax.ws.rs.core.MediaType;
|
||
|
|
||
|
import org.gcube.common.clients.Call;
|
||
|
import org.gcube.common.clients.delegates.ProxyDelegate;
|
||
|
import org.gcube.common.storagehub.model.items.Item;
|
||
|
import org.gcube.common.storagehub.model.service.ItemList;
|
||
|
|
||
|
public class DefaultWorkspaceManager implements WorkspaceManagerClient {
|
||
|
|
||
|
private final ProxyDelegate<WebTarget> delegate;
|
||
|
|
||
|
|
||
|
public DefaultWorkspaceManager(ProxyDelegate<WebTarget> config){
|
||
|
this.delegate = config;
|
||
|
}
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public List<? extends Item> getWorkspace(String... excludeNodes) {
|
||
|
Call<WebTarget, ItemList> call = new Call<WebTarget, ItemList>() {
|
||
|
@Override
|
||
|
public ItemList call(WebTarget manager) throws Exception {
|
||
|
WebTarget myManager = manager;
|
||
|
if (excludeNodes !=null && excludeNodes.length>0)
|
||
|
myManager = myManager.queryParam("exclude",excludeNodes);
|
||
|
Invocation.Builder builder = myManager.request(MediaType.APPLICATION_JSON);
|
||
|
ItemList response = builder.get(ItemList.class);
|
||
|
System.out.println(myManager.getUri().toString());
|
||
|
return response;
|
||
|
}
|
||
|
};
|
||
|
try {
|
||
|
ItemList result = delegate.make(call);
|
||
|
return result.getItemlist();
|
||
|
}catch(Exception e) {
|
||
|
throw new RuntimeException(e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|