mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-11 20:13:17 +00:00
Rebasing fixes due to metadata for all pull request.
This commit is contained in:
@@ -24,9 +24,6 @@ import org.dspace.authorize.AuthorizeManager;
|
||||
import org.dspace.authorize.ResourcePolicy;
|
||||
import org.dspace.browse.BrowseException;
|
||||
import org.dspace.browse.IndexBrowse;
|
||||
import org.dspace.content.authority.ChoiceAuthorityManager;
|
||||
import org.dspace.content.authority.Choices;
|
||||
import org.dspace.content.authority.MetadataAuthorityManager;
|
||||
import org.dspace.core.Constants;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.core.LogManager;
|
||||
@@ -35,7 +32,6 @@ import org.dspace.content.authority.ChoiceAuthorityManager;
|
||||
import org.dspace.event.Event;
|
||||
import org.dspace.eperson.EPerson;
|
||||
import org.dspace.eperson.Group;
|
||||
import org.dspace.event.Event;
|
||||
import org.dspace.handle.HandleManager;
|
||||
import org.dspace.identifier.IdentifierException;
|
||||
import org.dspace.identifier.IdentifierService;
|
||||
@@ -45,12 +41,6 @@ import org.dspace.storage.rdbms.TableRowIterator;
|
||||
import org.dspace.utils.DSpace;
|
||||
import org.dspace.versioning.VersioningService;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Class representing an item in DSpace.
|
||||
* <P>
|
||||
@@ -254,6 +244,32 @@ public class Item extends DSpaceObject
|
||||
return new ItemIterator(context, rows);
|
||||
}
|
||||
|
||||
public static ItemIterator findByMetadataFieldAuthority(Context context, String mdString, String authority) throws SQLException, AuthorizeException, IOException {
|
||||
String[] elements = getElementsFilled(mdString);
|
||||
String schema = elements[0], element = elements[1], qualifier = elements[2];
|
||||
MetadataSchema mds = MetadataSchema.find(context, schema);
|
||||
if (mds == null) {
|
||||
throw new IllegalArgumentException("No such metadata schema: " + schema);
|
||||
}
|
||||
MetadataField mdf = MetadataField.findByElement(context, mds.getSchemaID(), element, qualifier);
|
||||
if (mdf == null) {
|
||||
throw new IllegalArgumentException(
|
||||
"No such metadata field: schema=" + schema + ", element=" + element + ", qualifier=" + qualifier);
|
||||
}
|
||||
|
||||
String query = "SELECT item.* FROM metadatavalue,item WHERE item.in_archive='1' " +
|
||||
"AND item.item_id = metadatavalue.item_id AND metadata_field_id = ?";
|
||||
TableRowIterator rows = null;
|
||||
if (Item.ANY.equals(authority)) {
|
||||
rows = DatabaseManager.queryTable(context, "item", query, mdf.getFieldID());
|
||||
} else {
|
||||
query += " AND metadatavalue.authority = ?";
|
||||
rows = DatabaseManager.queryTable(context, "item", query, mdf.getFieldID(), authority);
|
||||
}
|
||||
return new ItemIterator(context, rows);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the internal ID of this item. In general, this shouldn't be exposed
|
||||
* to users
|
||||
|
Reference in New Issue
Block a user