git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@169390 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
619099c811
commit
4e96a43653
|
@ -0,0 +1,16 @@
|
|||
package org.gcube.common.storagehub.client.dsl;
|
||||
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||
|
||||
public class FileContainer extends ItemContainer<AbstractFileItem> {
|
||||
|
||||
protected FileContainer(ItemManagerClient itemclient, AbstractFileItem item) {
|
||||
super(itemclient, item);
|
||||
}
|
||||
|
||||
protected FileContainer(ItemManagerClient itemclient, String fileId) {
|
||||
super(itemclient, fileId);
|
||||
}
|
||||
|
||||
}
|
|
@ -19,8 +19,8 @@ public class FolderContainer extends ItemContainer<FolderItem>{
|
|||
super(itemclient, folderId);
|
||||
}
|
||||
|
||||
public List<? extends Item> list() {
|
||||
return itemclient.getChildren(itemId);
|
||||
public ListResolver list() {
|
||||
return new ListResolver(itemclient, itemId);
|
||||
}
|
||||
|
||||
//TODO: change the return to file container
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package org.gcube.common.storagehub.client.dsl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.model.NodeConstants;
|
||||
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class ListResolver {
|
||||
|
||||
private ItemManagerClient itemClient;
|
||||
private String itemId;
|
||||
|
||||
Set<String> excludes = new HashSet<>(Arrays.asList(NodeConstants.ACCOUNTING_NAME, NodeConstants.CONTENT_NAME, NodeConstants.METADATA_NAME));
|
||||
|
||||
protected ListResolver(ItemManagerClient itemclient, String itemId) {
|
||||
this.itemClient = itemclient;
|
||||
this.itemId = itemId;
|
||||
}
|
||||
|
||||
public ListResolver withAccounting(){
|
||||
excludes.remove(NodeConstants.ACCOUNTING_NAME);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ListResolver withContent(){
|
||||
excludes.remove(NodeConstants.CONTENT_NAME);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ListResolver withMetadata(){
|
||||
excludes.remove(NodeConstants.METADATA_NAME);
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<? extends Item> getItems(){
|
||||
return itemClient.getChildren(itemId, excludes.toArray(new String[excludes.size()]));
|
||||
}
|
||||
|
||||
public List<ItemContainer<? extends Item>> getContainers(){
|
||||
List<? extends Item> items = itemClient.getChildren(itemId, excludes.toArray(new String[excludes.size()]));
|
||||
List<ItemContainer<? extends Item>> toReturn = items.stream().map(i -> Util.getContainerFromItem(i, itemClient)).collect(Collectors.toList());
|
||||
return toReturn;
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package org.gcube.common.storagehub.client.dsl;
|
||||
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
|
@ -14,7 +15,6 @@ public class OpenResolver {
|
|||
this.itemclient = itemclient;
|
||||
};
|
||||
|
||||
|
||||
public FolderContainer asFolder() {
|
||||
if (item instanceof FolderItem)
|
||||
return new FolderContainer(itemclient, (FolderItem)item);
|
||||
|
@ -25,4 +25,7 @@ public class OpenResolver {
|
|||
return new ItemContainer<Item>(itemclient, item);
|
||||
}
|
||||
|
||||
public FileContainer asFile() {
|
||||
return new FileContainer(itemclient, (AbstractFileItem)item);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,6 @@ public class StorageHubClient {
|
|||
return new OpenResolver(item, itemclient);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
package org.gcube.common.storagehub.client.dsl;
|
||||
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class Util {
|
||||
|
||||
protected static ItemContainer<? extends Item> getContainerFromItem(Item item,ItemManagerClient itemClient){
|
||||
if (item instanceof AbstractFileItem)
|
||||
return new FileContainer(itemClient, (AbstractFileItem)item);
|
||||
else if (item instanceof FolderItem)
|
||||
return new FolderContainer(itemClient, (FolderItem)item);
|
||||
else return new ItemContainer<Item>(itemClient, item);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue