diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java index 45e583a..53c09f5 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java @@ -3,6 +3,7 @@ package org.gcube.data.publishing.ckan2zenodo; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.regex.Matcher; @@ -209,7 +210,7 @@ public class Translator { try { ObjectMapper mapper=Parsing.getMapper(); DocumentContext sourceCtx=JsonPath.using(Parsing.JSON_PATH_ALWAYS_LIST_CONFIG).parse(source.getContent()); - ArrayList toReturn=new ArrayList<>(); + HashSet toReturn=new HashSet(); for(Filter f:resourceFilter.getFilters()) { JSONArray filtered=sourceCtx.read(f.getConditions().get(0)); for(Object obj:filtered) { @@ -219,7 +220,7 @@ public class Translator { } } - return toReturn; + return new ArrayList(toReturn); }catch(Throwable t) { log.error("Unable to filter resources. ",t); throw new TransformationException("Unable to filter "+source.getName()+" resources",t); diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/CkanResource.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/CkanResource.java index f5d00fd..d8a96d4 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/CkanResource.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/CkanResource.java @@ -29,4 +29,35 @@ public class CkanResource{ private String id; private String resource_type; private String size; + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CkanResource other = (CkanResource) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + return true; + } + + }