@Override public int searchResultCount(Context context, String query) throws SQLException { MetadataField firstNameField = metadataFieldService.findByElement(context, "eperson", "firstname", null); MetadataField lastNameField = metadataFieldService.findByElement(context, "eperson", "lastname", null); if (StringUtils.isBlank(query)) { query = null; } return ePersonDAO.searchResultCount(context, query, Arrays.asList(firstNameField, lastNameField)); }
/** * Check if a MetadataField for an eperson is available. * * @param metadataName The name of the metadata field. * @param context context * @return True if a valid metadata field, otherwise false. * @throws SQLException if database error */ protected synchronized boolean checkIfEpersonMetadataFieldExists(Context context, String metadataName) throws SQLException { if (metadataName == null) { return false; } // The phone is a predefined field if ("phone".equals(metadataName)) { return true; } MetadataField metadataField = metadataFieldService.findByElement(context, "eperson", metadataName, null); return metadataField != null; }
@Override public List<EPerson> findAll(Context context, int sortField, int pageSize, int offset) throws SQLException { String sortColumn = null; MetadataField metadataFieldSort = null; switch (sortField) { case EPerson.ID: sortColumn = "eperson_id"; break; case EPerson.EMAIL: sortColumn = "email"; break; case EPerson.LANGUAGE: metadataFieldSort = metadataFieldService.findByElement(context, "eperson", "language", null); break; case EPerson.NETID: sortColumn = "netid"; break; default: metadataFieldSort = metadataFieldService.findByElement(context, "eperson", "lastname", null); } return ePersonDAO.findAll(context, metadataFieldSort, sortColumn, pageSize, offset); }
@Override public Iterator<Item> findBySubmitterDateSorted(Context context, EPerson eperson, Integer limit) throws SQLException { MetadataField metadataField = metadataFieldService .findByElement(context, MetadataSchema.DC_SCHEMA, "date", "accessioned"); if (metadataField == null) { throw new IllegalArgumentException( "Required metadata field '" + MetadataSchema.DC_SCHEMA + ".date.accessioned' doesn't exist!"); } return itemDAO.findBySubmitter(context, eperson, metadataField, limit); }
@Override public void addMetadata(Context context, T dso, String schema, String element, String qualifier, String lang, List<String> values) throws SQLException { MetadataField metadataField = metadataFieldService.findByElement(context, schema, element, qualifier); if (metadataField == null) { throw new SQLException( "bad_dublin_core schema=" + schema + "." + element + "." + qualifier + ". Metadata field does not " + "exist!"); } addMetadata(context, dso, metadataField, lang, values); }
@Override public List<Community> findAll(Context context) throws SQLException { MetadataField sortField = metadataFieldService.findByElement(context, MetadataSchema.DC_SCHEMA, "title", null); if (sortField == null) { throw new IllegalArgumentException( "Required metadata field '" + MetadataSchema.DC_SCHEMA + ".title' doesn't exist!"); } return communityDAO.findAll(context, sortField); }
@Override public List<Collection> findAll(Context context) throws SQLException { MetadataField nameField = metadataFieldService.findByElement(context, MetadataSchema.DC_SCHEMA, "title", null); if (nameField == null) { throw new IllegalArgumentException( "Required metadata field '" + MetadataSchema.DC_SCHEMA + ".title' doesn't exist!"); } return collectionDAO.findAll(context, nameField); }
@Override public List<Community> findAllTop(Context context) throws SQLException { // get all communities that are not children MetadataField sortField = metadataFieldService.findByElement(context, MetadataSchema.DC_SCHEMA, "title", null); if (sortField == null) { throw new IllegalArgumentException( "Required metadata field '" + MetadataSchema.DC_SCHEMA + ".title' doesn't exist!"); } return communityDAO.findAllNoParent(context, sortField); }
@Override public List<Collection> findAll(Context context, Integer limit, Integer offset) throws SQLException { MetadataField nameField = metadataFieldService.findByElement(context, MetadataSchema.DC_SCHEMA, "title", null); if (nameField == null) { throw new IllegalArgumentException( "Required metadata field '" + MetadataSchema.DC_SCHEMA + ".title' doesn't exist!"); } return collectionDAO.findAll(context, nameField, limit, offset); }
@Override public List<Community> findAll(Context context, Integer limit, Integer offset) throws SQLException { MetadataField nameField = metadataFieldService.findByElement(context, MetadataSchema.DC_SCHEMA, "title", null); if (nameField == null) { throw new IllegalArgumentException( "Required metadata field '" + MetadataSchema.DC_SCHEMA + ".title' doesn't exist!"); } return communityDAO.findAll(context, nameField, limit, offset); }
@Override public void addMetadata(Context context, T dso, String schema, String element, String qualifier, String lang, List<String> values, List<String> authorities, List<Integer> confidences) throws SQLException { // We will not verify that they are valid entries in the registry // until update() is called. MetadataField metadataField = metadataFieldService.findByElement(context, schema, element, qualifier); if (metadataField == null) { throw new SQLException( "bad_dublin_core schema=" + schema + "." + element + "." + qualifier + ". Metadata field does not " + "exist!"); } addMetadata(context, dso, metadataField, lang, values, authorities, confidences); }
@Override public List<EPerson> search(Context context, String query, int offset, int limit) throws SQLException { try { List<EPerson> ePerson = new ArrayList<>(); EPerson person = find(context, UUID.fromString(query)); if (person != null) { ePerson.add(person); } return ePerson; } catch (IllegalArgumentException e) { MetadataField firstNameField = metadataFieldService.findByElement(context, "eperson", "firstname", null); MetadataField lastNameField = metadataFieldService.findByElement(context, "eperson", "lastname", null); if (StringUtils.isBlank(query)) { query = null; } return ePersonDAO.search(context, query, Arrays.asList(firstNameField, lastNameField), Arrays.asList(firstNameField, lastNameField), offset, limit); } }
@Override public Iterator<Item> findByAuthorityValue(Context context, String schema, String element, String qualifier, String value) throws SQLException, AuthorizeException { MetadataSchema mds = metadataSchemaService.find(context, schema); if (mds == null) { throw new IllegalArgumentException("No such metadata schema: " + schema); } MetadataField mdf = metadataFieldService.findByElement(context, mds, element, qualifier); if (mdf == null) { throw new IllegalArgumentException( "No such metadata field: schema=" + schema + ", element=" + element + ", qualifier=" + qualifier); } return itemDAO.findByAuthorityValue(context, mdf, value, true); }
return metadataFieldService.findByElement(context, schema, element, qualifier);
MetadataField mf = metadataFieldService.findByElement(context, schema, element, qualifier); if (mf != null) { fields.add(mf);
throw new IllegalArgumentException("No such metadata schema: " + schema); MetadataField mdf = metadataFieldService.findByElement(context, mds, element, qualifier); if (mdf == null) { throw new IllegalArgumentException(
MetadataField foundField = metadataFieldService.findByElement(c, foundSchema, element, qualifier);
@Override public Iterator<Item> findByMetadataFieldAuthority(Context context, String mdString, String authority) throws SQLException, AuthorizeException { String[] elements = getElementsFilled(mdString); String schema = elements[0]; String element = elements[1]; String qualifier = elements[2]; MetadataSchema mds = metadataSchemaService.find(context, schema); if (mds == null) { throw new IllegalArgumentException("No such metadata schema: " + schema); } MetadataField mdf = metadataFieldService.findByElement(context, mds, element, qualifier); if (mdf == null) { throw new IllegalArgumentException( "No such metadata field: schema=" + schema + ", element=" + element + ", qualifier=" + qualifier); } return findByAuthorityValue(context, mds.getName(), mdf.getElement(), mdf.getQualifier(), authority); }
@Override public int getFieldID(Context context, String field) throws InvalidMetadataFieldException, SQLException { if (metadataFieldCache == null) { metadataFieldCache = new MetadataFieldCache(); } if (!metadataFieldCache.hasField(field)) { String[] pieces = field.split(Pattern.quote(".")); if (pieces.length > 1) { String schema = pieces[0]; String element = pieces[1]; String qualifier = null; if (pieces.length > 2) { qualifier = pieces[2]; } MetadataField metadataField = metadataFieldService.findByElement(context, schema, element, qualifier); if (null != metadataField) { metadataFieldCache.add(field, metadataField.getID()); } else { throw new InvalidMetadataFieldException(); } } else { throw new InvalidMetadataFieldException(); } } return metadataFieldCache.getField(field); } }
create = true; } else { mdfield = metadataFieldService.findByElement(context, mdschema, element, qualifier);