Package org.dspace.content
Class MetadataFieldServiceImpl
- java.lang.Object
-
- org.dspace.content.MetadataFieldServiceImpl
-
- All Implemented Interfaces:
MetadataFieldService
public class MetadataFieldServiceImpl extends Object implements MetadataFieldService
Service implementation for the MetadataField object. This class is responsible for all business logic calls for the MetadataField object and is autowired by spring. This class should never be accessed directly.- Author:
- kevinvandevelde at atmire.com
-
-
Field Summary
Fields Modifier and Type Field Description protected AuthorizeServiceauthorizeServiceprotected MetadataFieldDAOmetadataFieldDAOprotected MetadataSchemaServicemetadataSchemaServiceprotected MetadataValueServicemetadataValueService
-
Constructor Summary
Constructors Modifier Constructor Description protectedMetadataFieldServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MetadataFieldcreate(Context context, MetadataSchema metadataSchema, String element, String qualifier, String scopeNote)Creates a new metadata field.voiddelete(Context context, MetadataField metadataField)Delete the metadata field.MetadataFieldfind(Context context, int id)Find the field corresponding to the given numeric ID.List<MetadataField>findAll(Context context)Retrieve all metadata field types from the registryList<MetadataField>findAllInSchema(Context context, MetadataSchema metadataSchema)Return all metadata fields that are found in a given schema.MetadataFieldfindByElement(Context context, String metadataSchemaName, String element, String qualifier)MetadataFieldfindByElement(Context context, MetadataSchema metadataSchema, String element, String qualifier)Retrieves the metadata field from the database.MetadataFieldfindByString(Context context, String mdString, char separator)Separates an mdString in schema, element and qualifier parts, separated by a given separator And returns it's matching metadataField if foundList<MetadataField>findFieldsByElementNameUnqualified(Context context, String metadataSchemaName, String element)protected booleanhasElement(Context context, int fieldId, MetadataSchema metadataSchema, String element, String qualifier)A sanity check that ensures a given element and qualifier are unique within a given schema.voidupdate(Context context, MetadataField metadataField)Update the metadata field in the database.
-
-
-
Field Detail
-
metadataFieldDAO
@Autowired(required=true) protected MetadataFieldDAO metadataFieldDAO
-
authorizeService
@Autowired(required=true) protected AuthorizeService authorizeService
-
metadataValueService
@Autowired(required=true) protected MetadataValueService metadataValueService
-
metadataSchemaService
@Autowired(required=true) protected MetadataSchemaService metadataSchemaService
-
-
Method Detail
-
create
public MetadataField create(Context context, MetadataSchema metadataSchema, String element, String qualifier, String scopeNote) throws AuthorizeException, SQLException, NonUniqueMetadataException
Description copied from interface:MetadataFieldServiceCreates a new metadata field.- Specified by:
createin interfaceMetadataFieldService- Parameters:
context- DSpace context objectmetadataSchema- schemaelement- elementqualifier- qualifierscopeNote- scope note- Returns:
- new MetadataField
- Throws:
AuthorizeException- if authorization errorSQLException- if database errorNonUniqueMetadataException- if an existing field with an identical element and qualifier is already present
-
find
public MetadataField find(Context context, int id) throws SQLException
Description copied from interface:MetadataFieldServiceFind the field corresponding to the given numeric ID. The ID is a database key internal to DSpace.- Specified by:
findin interfaceMetadataFieldService- Parameters:
context- context, in case we need to read it in from DBid- the metadata field ID- Returns:
- the metadata field object
- Throws:
SQLException- if database error
-
findByElement
public MetadataField findByElement(Context context, MetadataSchema metadataSchema, String element, String qualifier) throws SQLException
Description copied from interface:MetadataFieldServiceRetrieves the metadata field from the database.- Specified by:
findByElementin interfaceMetadataFieldService- Parameters:
context- dspace contextmetadataSchema- schemaelement- element namequalifier- qualifier (may be ANY or null)- Returns:
- recalled metadata field
- Throws:
SQLException- if database error
-
findByElement
public MetadataField findByElement(Context context, String metadataSchemaName, String element, String qualifier) throws SQLException
- Specified by:
findByElementin interfaceMetadataFieldService- Throws:
SQLException
-
findByString
public MetadataField findByString(Context context, String mdString, char separator) throws SQLException
Description copied from interface:MetadataFieldServiceSeparates an mdString in schema, element and qualifier parts, separated by a given separator And returns it's matching metadataField if found- Specified by:
findByStringin interfaceMetadataFieldService- Parameters:
context- dspace contextmdString- String being separated to find corresponding mdField (ex dc.contributor)separator- Separator being used to separate the mdString- Returns:
- Corresponding MetadataField if found
- Throws:
SQLException
-
findFieldsByElementNameUnqualified
public List<MetadataField> findFieldsByElementNameUnqualified(Context context, String metadataSchemaName, String element) throws SQLException
- Specified by:
findFieldsByElementNameUnqualifiedin interfaceMetadataFieldService- Throws:
SQLException
-
findAll
public List<MetadataField> findAll(Context context) throws SQLException
Description copied from interface:MetadataFieldServiceRetrieve all metadata field types from the registry- Specified by:
findAllin interfaceMetadataFieldService- Parameters:
context- dspace context- Returns:
- an array of all the Dublin Core types
- Throws:
SQLException- if database error
-
findAllInSchema
public List<MetadataField> findAllInSchema(Context context, MetadataSchema metadataSchema) throws SQLException
Description copied from interface:MetadataFieldServiceReturn all metadata fields that are found in a given schema.- Specified by:
findAllInSchemain interfaceMetadataFieldService- Parameters:
context- dspace contextmetadataSchema- the metadata schema for which we want all our metadata fields- Returns:
- array of metadata fields
- Throws:
SQLException- if database error
-
update
public void update(Context context, MetadataField metadataField) throws SQLException, AuthorizeException, NonUniqueMetadataException, IOException
Description copied from interface:MetadataFieldServiceUpdate the metadata field in the database.- Specified by:
updatein interfaceMetadataFieldService- Parameters:
context- dspace contextmetadataField- metadata field- Throws:
SQLException- if database errorAuthorizeException- if authorization errorNonUniqueMetadataException- if an existing field with an identical element and qualifier is already presentIOException- if IO error
-
delete
public void delete(Context context, MetadataField metadataField) throws SQLException, AuthorizeException
Description copied from interface:MetadataFieldServiceDelete the metadata field.- Specified by:
deletein interfaceMetadataFieldService- Parameters:
context- dspace contextmetadataField- metadata field- Throws:
SQLException- if database errorAuthorizeException- if authorization error
-
hasElement
protected boolean hasElement(Context context, int fieldId, MetadataSchema metadataSchema, String element, String qualifier) throws SQLException
A sanity check that ensures a given element and qualifier are unique within a given schema. The check happens in code as we cannot use a database constraint.- Parameters:
context- dspace contextfieldId- field idmetadataSchema- metadataSchemaelement- elementqualifier- qualifier- Returns:
- true if unique
- Throws:
SQLException- if database error
-
-