diff --git a/dspace-oai/src/main/java/org/dspace/xoai/data/DSpaceDatabaseItem.java b/dspace-oai/src/main/java/org/dspace/xoai/data/DSpaceDatabaseItem.java deleted file mode 100644 index 5a6030d1dc..0000000000 --- a/dspace-oai/src/main/java/org/dspace/xoai/data/DSpaceDatabaseItem.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * The contents of this file are subject to the license and copyright - * detailed in the LICENSE and NOTICE files at the root of the source - * tree and available online at - * - * http://www.dspace.org/license/ - */ -package org.dspace.xoai.data; - -import com.lyncode.xoai.dataprovider.core.ItemMetadata; -import com.lyncode.xoai.dataprovider.core.ReferenceSet; -import com.lyncode.xoai.dataprovider.xml.xoai.Metadata; -import org.apache.log4j.LogManager; -import org.apache.log4j.Logger; -import org.dspace.content.Item; - -import java.util.Date; -import java.util.List; - -/** - * - * @author Lyncode Development Team - */ -public class DSpaceDatabaseItem extends DSpaceItem -{ - private static Logger log = LogManager.getLogger(DSpaceDatabaseItem.class); - - private Item item; - private List sets; - - public DSpaceDatabaseItem(Item item, Metadata metadata, List sets) - { - this.item = item; - this.metadata = new ItemMetadata(metadata); - this.sets = sets; - } - - @Override - public Date getDatestamp() - { - return item.getLastModified(); - } - - @Override - public List getSets() - { - return sets; - } - - @Override - public boolean isDeleted() - { - return item.isWithdrawn(); - } - - private ItemMetadata metadata = null; - - @Override - public ItemMetadata getMetadata() - { - return metadata; - } - - public Item getItem() - { - return item; - } - - @Override - protected String getHandle() - { - return item.getHandle(); - } -} diff --git a/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceAtLeastOneMetadataFilter.java b/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceAtLeastOneMetadataFilter.java index 4bbebe04a4..fbbb4aa533 100644 --- a/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceAtLeastOneMetadataFilter.java +++ b/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceAtLeastOneMetadataFilter.java @@ -15,10 +15,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.util.ClientUtils; -import org.dspace.core.Constants; import org.dspace.xoai.data.DSpaceItem; import org.dspace.xoai.filter.data.DSpaceMetadataFilterOperator; -import org.dspace.xoai.filter.results.DatabaseFilterResult; import org.dspace.xoai.filter.results.SolrFilterResult; import com.google.common.base.Function; @@ -50,7 +48,7 @@ public class DSpaceAtLeastOneMetadataFilter extends DSpaceFilter { if (parameterValue == null) parameterValue = getConfiguration().get("values"); if (parameterValue instanceof SimpleType) { - values = new ArrayList(); + values = new ArrayList<>(); values.add(((SimpleType) parameterValue).asString()); } else if (parameterValue instanceof ParameterList) { values = new ListBuilder() @@ -61,7 +59,7 @@ public class DSpaceAtLeastOneMetadataFilter extends DSpaceFilter { return elem.asSimpleType().asString(); } }); - } else values = new ArrayList(); + } else values = new ArrayList<>(); } return values; } @@ -120,65 +118,10 @@ public class DSpaceAtLeastOneMetadataFilter extends DSpaceFilter { return false; } - private DatabaseFilterResult getWhere(int mdid, List values) { - List parts = new ArrayList(); - List params = new ArrayList(); - params.add(mdid); - for (String v : values) - this.buildWhere(v, parts, params); - if (parts.size() > 0) { - String query = "EXISTS (SELECT tmp.* FROM metadatavalue tmp WHERE tmp.resource_id=i.item_id AND tmp.resource_type_id=" + Constants.ITEM+ " AND tmp.metadata_field_id=?" - + " AND (" - + StringUtils.join(parts.iterator(), " OR ") - + "))"; - return new DatabaseFilterResult(query, params); - } - return new DatabaseFilterResult(); - } - - private void buildWhere(String value, List parts, - List params) { - switch (this.getOperator()) { - case ENDS_WITH: - parts.add("(tmp.text_value LIKE ?)"); - params.add("%" + value); - break; - case STARTS_WITH: - parts.add("(tmp.text_value LIKE ?)"); - params.add(value + "%"); - break; - case EQUAL: - parts.add("(tmp.text_value LIKE ?)"); - params.add(value); - break; - case GREATER: - parts.add("(tmp.text_value > ?)"); - params.add(value); - break; - case LOWER: - parts.add("(tmp.text_value < ?)"); - params.add(value); - break; - case LOWER_OR_EQUAL: - parts.add("(tmp.text_value <= ?)"); - params.add(value); - break; - case GREATER_OR_EQUAL: - parts.add("(tmp.text_value >= ?)"); - params.add(value); - break; - case CONTAINS: - default: - parts.add("(tmp.text_value LIKE ?)"); - params.add("%" + value + "%"); - break; - } - } - @Override public SolrFilterResult buildSolrQuery() { String field = this.getField(); - List parts = new ArrayList(); + List parts = new ArrayList<>(); if (this.getField() != null) { for (String v : this.getValues()) this.buildQuery("metadata." + field, diff --git a/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceFilter.java b/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceFilter.java index f3e8db1c6f..3a7a641e70 100644 --- a/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceFilter.java +++ b/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceFilter.java @@ -13,7 +13,6 @@ import com.lyncode.xoai.dataprovider.xml.xoaiconfig.parameters.ParameterMap; import org.dspace.core.Context; import org.dspace.xoai.data.DSpaceItem; -import org.dspace.xoai.filter.results.DatabaseFilterResult; import org.dspace.xoai.filter.results.SolrFilterResult; import org.dspace.xoai.services.api.FieldResolver; diff --git a/dspace-oai/src/main/java/org/dspace/xoai/filter/DatabaseFilterResult.java b/dspace-oai/src/main/java/org/dspace/xoai/filter/DatabaseFilterResult.java deleted file mode 100644 index 5f9b726bd5..0000000000 --- a/dspace-oai/src/main/java/org/dspace/xoai/filter/DatabaseFilterResult.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * The contents of this file are subject to the license and copyright - * detailed in the LICENSE and NOTICE files at the root of the source - * tree and available online at - * - * http://www.dspace.org/license/ - */ -package org.dspace.xoai.filter; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * @author Lyncode Development Team - */ -public class DatabaseFilterResult -{ - private String _where; - - private List _params; - - private boolean _nothing; - - public DatabaseFilterResult() - { - _nothing = true; - } - - public DatabaseFilterResult(String where, Object... params) - { - _nothing = false; - _where = where; - _params = new ArrayList(); - for (Object obj : params) - _params.add(obj); - } - - public DatabaseFilterResult(String where, List params) - { - _nothing = false; - _where = where; - _params = params; - } - - public boolean hasResult() - { - return !_nothing; - } - - public String getWhere() - { - return _where; - } - - public List getParameters() - { - return _params; - } - -} diff --git a/dspace-oai/src/main/java/org/dspace/xoai/filter/DateUntilFilter.java b/dspace-oai/src/main/java/org/dspace/xoai/filter/DateUntilFilter.java index 1388add102..4ac85e9e96 100644 --- a/dspace-oai/src/main/java/org/dspace/xoai/filter/DateUntilFilter.java +++ b/dspace-oai/src/main/java/org/dspace/xoai/filter/DateUntilFilter.java @@ -11,9 +11,7 @@ import com.lyncode.builder.DateBuilder; import com.lyncode.xoai.dataprovider.services.api.DateProvider; import com.lyncode.xoai.dataprovider.services.impl.BaseDateProvider; import org.apache.solr.client.solrj.util.ClientUtils; -import org.dspace.core.Context; import org.dspace.xoai.data.DSpaceItem; -import org.dspace.xoai.filter.results.DatabaseFilterResult; import org.dspace.xoai.filter.results.SolrFilterResult; import java.util.Date; diff --git a/dspace-oai/src/main/java/org/dspace/xoai/filter/results/DatabaseFilterResult.java b/dspace-oai/src/main/java/org/dspace/xoai/filter/results/DatabaseFilterResult.java deleted file mode 100644 index 4c417eac1c..0000000000 --- a/dspace-oai/src/main/java/org/dspace/xoai/filter/results/DatabaseFilterResult.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * The contents of this file are subject to the license and copyright - * detailed in the LICENSE and NOTICE files at the root of the source - * tree and available online at - * - * http://www.dspace.org/license/ - */ -package org.dspace.xoai.filter.results; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * @author Lyncode Development Team - */ -public class DatabaseFilterResult -{ - private String where; - private List parameters; - private boolean nothing; - - public DatabaseFilterResult() - { - nothing = true; - } - - public DatabaseFilterResult(String where, Object... params) - { - nothing = false; - this.where = where; - parameters = new ArrayList(); - for (Object obj : params) - parameters.add(obj); - } - - public DatabaseFilterResult(String where, List params) - { - nothing = false; - this.where = where; - parameters = params; - } - - public boolean hasResult() - { - return !nothing; - } - - public String getQuery() - { - return where; - } - - public List getParameters() - { - return parameters; - } - -} diff --git a/dspace-oai/src/main/java/org/dspace/xoai/services/impl/xoai/BaseDSpaceFilterResolver.java b/dspace-oai/src/main/java/org/dspace/xoai/services/impl/xoai/BaseDSpaceFilterResolver.java index 6b6172d9e0..15bb5333e2 100644 --- a/dspace-oai/src/main/java/org/dspace/xoai/services/impl/xoai/BaseDSpaceFilterResolver.java +++ b/dspace-oai/src/main/java/org/dspace/xoai/services/impl/xoai/BaseDSpaceFilterResolver.java @@ -13,7 +13,6 @@ import com.lyncode.xoai.dataprovider.filter.conditions.*; import com.lyncode.xoai.dataprovider.xml.xoaiconfig.parameters.ParameterMap; import org.apache.log4j.Logger; import org.dspace.xoai.filter.*; -import org.dspace.xoai.filter.results.DatabaseFilterResult; import org.dspace.xoai.filter.results.SolrFilterResult; import org.dspace.xoai.services.api.context.ContextService; import org.dspace.xoai.services.api.context.ContextServiceException; @@ -21,8 +20,6 @@ import org.dspace.xoai.services.api.FieldResolver; import org.dspace.xoai.services.api.xoai.DSpaceFilterResolver; import org.springframework.beans.factory.annotation.Autowired; -import java.util.List; - import static com.lyncode.xoai.dataprovider.filter.Scope.MetadataFormat; public class BaseDSpaceFilterResolver implements DSpaceFilterResolver { diff --git a/dspace-oai/src/main/java/org/dspace/xoai/util/ItemUtils.java b/dspace-oai/src/main/java/org/dspace/xoai/util/ItemUtils.java index 2b25d86e37..d256823faa 100644 --- a/dspace-oai/src/main/java/org/dspace/xoai/util/ItemUtils.java +++ b/dspace-oai/src/main/java/org/dspace/xoai/util/ItemUtils.java @@ -74,9 +74,7 @@ public class ItemUtils } public static Metadata retrieveMetadata (Context context, Item item) { Metadata metadata; - - //DSpaceDatabaseItem dspaceItem = new DSpaceDatabaseItem(item); - + // read all metadata into Metadata Object metadata = new Metadata(); List vals = itemService.getMetadata(item, Item.ANY, Item.ANY, Item.ANY, Item.ANY);