search method added on folders

This commit is contained in:
lucio 2020-01-24 11:56:40 +01:00
parent d91f5a252e
commit f6191bf49c
5 changed files with 105 additions and 119 deletions

View File

@ -177,6 +177,18 @@ public class FolderContainer extends ItemContainer<FolderItem>{
return new ListResolver((onlyType, includeHidden, excludes) -> itemclient.findChildrenByNamePattern(itemId, namePattern , excludes), itemclient);
}
/**
*
* returns the items that matches the name pattern searching recursively on all subfolders
*
* @return {@ListResolver}
* @throws {@InvalidItemException}
* @throws {@UserNotAuthorizedException} if user is not authorized to read this folder
*/
public ListResolver search(String nameTomatch) throws StorageHubException {
return new ListResolver((onlyType, includeHidden, excludes) -> itemclient.search(itemId, onlyType, includeHidden, nameTomatch, excludes), itemclient);
}
/**
*
* shares this Folder with a list of users setting the same {@AccessType} for everyone in the list.

View File

@ -64,7 +64,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
Response resp = response.getSource();
@ -110,7 +110,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
ItemList items = response.getSource().readEntity(ItemList.class);
@ -127,7 +127,7 @@ public class DefaultItemManager implements ItemManagerClient {
throw new RuntimeException(e1);
}
}
@Override
public List<? extends Item> getChildren(String id, int start, int limit, boolean showHidden, Class<? extends Item> onlyOfType, String... excludeNodes) throws StorageHubException{
@ -156,7 +156,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
ItemList items = response.getSource().readEntity(ItemList.class);
@ -197,6 +197,46 @@ public class DefaultItemManager implements ItemManagerClient {
return getChildren(id, null, showHidden, excludeNodes);
}
public List<? extends Item> search(String id, Class<? extends Item> onlyOfType, boolean showHidden, String nameToMatch, String ... excludeNodes) throws StorageHubException{
Call<GXWebTargetAdapterRequest, ItemList> call = new Call<GXWebTargetAdapterRequest, ItemList>() {
@Override
public ItemList call(GXWebTargetAdapterRequest manager) throws StorageHubException, Exception {
Objects.requireNonNull(id, "id cannot be null");
GXWebTargetAdapterRequest myManager = manager.path(id).path("search");
Map<String, Object[]> params = new HashMap<>();
if (excludeNodes !=null && excludeNodes.length>0)
params.put("exclude",excludeNodes);
if (onlyOfType!=null)
params.put("onlyType", new Object[] {resolveNodeType(onlyOfType)});
params.put("showHidden", new Object[] {showHidden});
params.put("name", new Object[] {nameToMatch});
GXInboundResponse response = myManager.queryParams(params).get();
if (response.isErrorResponse()) {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
ItemList items = response.getSource().readEntity(ItemList.class);
return items;
}
};
try {
ItemList result = delegate.make(call);
return result.getItemlist();
}catch(StorageHubException e) {
throw e;
}catch(Exception e1) {
throw new RuntimeException(e1);
}
}
@Override
@Deprecated
public Integer childrenCount(String id , Class<? extends Item> onlyOfType) throws StorageHubException{
@ -222,7 +262,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(Integer.class);
@ -274,7 +314,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
Response resp = response.getSource();
@ -308,7 +348,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
Response resp = response.getSource();
@ -341,7 +381,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
VersionList versions = response.getSource().readEntity(VersionList.class);
@ -377,7 +417,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError("error response from the service with code: "+response.getHTTPCode());
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
ItemWrapper<Item> item = response.getSource().readEntity(ItemWrapper.class);
@ -409,7 +449,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
ItemWrapper<Item> item = response.getSource().readEntity(ItemWrapper.class);
@ -442,7 +482,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
URL item = response.getSource().readEntity(URL.class);
@ -477,7 +517,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
URL item = response.getSource().readEntity(URL.class);
@ -516,7 +556,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
ItemList items = response.getSource().readEntity(ItemList.class);
@ -563,7 +603,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException()) {
throw response.getException();
}else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -600,7 +640,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -660,7 +700,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -701,7 +741,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -736,7 +776,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -774,7 +814,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -809,7 +849,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -848,7 +888,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError("error response returned from server "+response.getHTTPCode());
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
@ -883,7 +923,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ItemList.class);
@ -913,7 +953,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ACLList.class);
@ -946,7 +986,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
@ -987,7 +1027,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -1024,7 +1064,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -1064,7 +1104,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -1102,7 +1142,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -1140,7 +1180,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -1176,7 +1216,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -1211,7 +1251,7 @@ public class DefaultItemManager implements ItemManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);

View File

@ -49,7 +49,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ItemWrapper.class);
@ -104,7 +104,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ItemList.class);
@ -138,7 +138,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
@ -171,7 +171,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ItemWrapper.class);
@ -198,7 +198,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
@ -231,7 +231,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ItemWrapper.class);
@ -258,7 +258,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return null;
@ -284,7 +284,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -336,7 +336,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(ItemList.class);
@ -363,7 +363,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);
@ -390,7 +390,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
if (response.hasException())
throw response.getException();
else
throw new BackendGenericError();
throw new BackendGenericError("HTTP error code is "+response.getHTTPCode());
}
return response.getSource().readEntity(String.class);

View File

@ -28,6 +28,8 @@ public interface ItemManagerClient {
List<? extends Item> getAnchestors(String id, String ... excludeNodes) throws StorageHubException;
List<? extends Item> search(String id, Class<? extends Item> onlyOfType, boolean includeHidden, String nameToMatch, String ... excludeNodes) throws StorageHubException;
Integer childrenCount(String id,boolean includeHidden) throws StorageHubException ;
Integer childrenCount(String id, boolean includeHidden, Class<? extends Item> onlyOfType) throws StorageHubException;

View File

@ -7,7 +7,6 @@ import java.io.FileOutputStream;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
@ -19,7 +18,6 @@ import org.gcube.common.storagehub.client.dsl.FileContainer;
import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.gcube.common.storagehub.client.dsl.ItemContainer;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
import org.gcube.common.storagehub.client.dsl.VREFolderManager;
import org.gcube.common.storagehub.model.Metadata;
import org.gcube.common.storagehub.model.acls.AccessType;
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
@ -27,102 +25,36 @@ import org.gcube.common.storagehub.model.items.Item;
import org.junit.BeforeClass;
import org.junit.Test;
import ch.qos.logback.classic.pattern.Util;
public class Items {
@BeforeClass
public static void setUp(){
SecurityTokenProvider.instance.set("b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548");
ScopeProvider.instance.set("/gcube");
}
@Test
public void allRound() throws StorageHubException {
StorageHubClient shc = new StorageHubClient();
VREFolderManager vreFolderMaanger = shc.getVreFolderManager(org.gcube.common.storagehub.client.dsl.Util.getVREGroupFromContext("/gcube/devsec/devVreLucio"));
vreFolderMaanger.createVRE(AccessType.READ_ONLY, "lucio.lelii");
/*vreFolderMaanger.addUser("lucio.lelii");
vreFolderMaanger.addUser("massimiliano.assante");
vreFolderMaanger.setAdmin("massimiliano.assante");*/
vreFolderMaanger.removeVRE();
}
@Test
public void creteAndREmoveUser() throws StorageHubException {
public void search() throws Exception{
StorageHubClient shc = new StorageHubClient();
shc.getVreFolderManager("gcube-devsec-devVRE").addUser("gCat");
}
@Test
public void removeUserFromVRE() throws StorageHubException {
StorageHubClient shc = new StorageHubClient();
shc.getVreFolderManager().removeUser("andrea.rossi");
}
@Test
public void addUserFromVRE() throws StorageHubException {
StorageHubClient shc = new StorageHubClient();
shc.getVreFolderManager().addUser("andrea.rossi");
}
@Test
public void getAdminsFromVRE() throws StorageHubException {
StorageHubClient shc = new StorageHubClient();
for (String user: shc.getVreFolderManager().getAdmins()) {
System.out.println(user);
}
}
@Test
public void removeAdminsFromVRE() throws StorageHubException {
StorageHubClient shc = new StorageHubClient();
shc.getVreFolderManager().removeAdmin("vfloros");
}
@Test
public void addAdminToVRE() throws StorageHubException {
StorageHubClient shc = new StorageHubClient();
shc.getVreFolderManager().setAdmin("vfloros");
}
@Test
public void emptyStatisticaManagerTrash() {
StorageHubClient shc = new StorageHubClient();
System.out.println(shc.openTrash().get().getId());
List<? extends Item> s = shc.getWSRoot().search("pippo").getItems();
s.forEach(i -> System.out.println(i.getPath()+" "+i.getName()));
}
@Test
public void forceDelete() throws Exception{
StorageHubClient shc = new StorageHubClient();
/*
shc.getWSRoot().newFolder("lucioFolderTestMeta","desclucio" );
HashMap<String, Object> prop = new HashMap<>();
prop.put("folderProp", "test2");
prop.put("folderProp2", "test2");
*/
FolderContainer fc = shc.open("bfb0548b-92d0-47d4-a973-1253dc4694d1").asFolder();
List<ItemContainer<? extends Item>> children = fc.list().withMetadata().getContainers();
for (ItemContainer<? extends Item> cont : children) {
Metadata m = cont.get().getMetadata();
for (Object v : m.getMap().values())
System.out.println(v.toString());
}
long count = shc.getTotalItemCount();
long volume = shc.getTotalVolume();
System.out.println("items are "+count+" volume "+volume);
}