nikolas.laskaris 2014-02-06 15:44:51 +00:00
parent ba0938b2d0
commit 4a3ff9a531
1 changed files with 15 additions and 9 deletions

View File

@ -142,7 +142,10 @@ public class GenericResource implements GenericResourceInfoI {
*/
protected List<ISGenericResource> getGenericResource(QueryString query)
{
return (List<ISGenericResource>) (CachesManager.getInstance().getGenericResourceCache().get(query).getValue());
List<ISGenericResource> resList = (List<ISGenericResource>) (CachesManager.getInstance().getGenericResourceCache().get(query).getValue());
if(resList.isEmpty())
logger.debug("no generic resources in cache "+query.get("name"));
return resList;
}
/**
@ -344,7 +347,7 @@ public class GenericResource implements GenericResourceInfoI {
// }
/**
* @return a list containing pairs of (name, id) of the available generic resources
* @return a list containing all generic resources
* @throws RemoteException when an error has occurred while communicating with IS
*/
public List<org.gcube.common.resources.gcore.GenericResource> getAllGenericResources() throws RemoteException {
@ -462,18 +465,21 @@ public class GenericResource implements GenericResourceInfoI {
query.put(CacheEntryConstants.vre, getDLName());
return getGenericResource(query);
}
/**
* @param name the name of the generic resource
* @return a list containing the generic resources that have as name the given
* @throws RemoteException when an error has occurred while communicating with IS
*/
public List<ISGenericResource> getGenericResourceByName(String name)
throws RemoteException {
QueryString query = new QueryString();
query.put(CacheEntryConstants.name, name);
query.put(CacheEntryConstants.vre, getDLName());
return getGenericResource(query);
public List<ISGenericResource> getGenericResourceByName(String name) throws RemoteException{
//caching is done by (id,vre) as key pairs. so we cannot use cache to retrieve objects.
List<org.gcube.common.resources.gcore.GenericResource> allRes = getAllGenericResources();
List<ISGenericResource> results = new ArrayList<ISGenericResource>();
for(org.gcube.common.resources.gcore.GenericResource res : allRes)
if(res.profile().name().equalsIgnoreCase(name))
results.add(new ISGenericResource(res.id(),res.profile().name(),res.profile().description(),res.profile().bodyAsString(),res.profile().type()));
return results;
}