Class MetadataTemplateServiceImpl
- java.lang.Object
-
- ca.corefacility.bioinformatics.irida.service.impl.CRUDServiceImpl<java.lang.Long,MetadataTemplate>
-
- ca.corefacility.bioinformatics.irida.service.impl.sample.MetadataTemplateServiceImpl
-
- All Implemented Interfaces:
CRUDService<java.lang.Long,MetadataTemplate>
,MetadataTemplateService
@Service public class MetadataTemplateServiceImpl extends CRUDServiceImpl<java.lang.Long,MetadataTemplate> implements MetadataTemplateService
Service for storing and readingMetadataTemplate
s
-
-
Field Summary
-
Fields inherited from class ca.corefacility.bioinformatics.irida.service.impl.CRUDServiceImpl
CREATED_DATE_SORT_PROPERTY, repository, validator, valueType
-
-
Constructor Summary
Constructors Constructor Description MetadataTemplateServiceImpl(MetadataTemplateRepository repository, MetadataFieldRepository fieldRepository, javax.validation.Validator validator, MetadataRestrictionRepository metadataRestrictionRepository, UserRepository userRepository, ProjectUserJoinRepository pujRepository, UserGroupProjectJoinRepository userGroupProjectJoinRepository)
-
Method Summary
-
Methods inherited from class ca.corefacility.bioinformatics.irida.service.impl.CRUDServiceImpl
count, create, delete, exists, findAll, findRevisions, findRevisions, list, list, list, readMultiple, search, search, update, updateFields, updateMultiple
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ca.corefacility.bioinformatics.irida.service.CRUDService
count, create, delete, exists, findAll, findRevisions, findRevisions, list, list, list, readMultiple, search, search, update, updateFields, updateMultiple
-
-
-
-
Constructor Detail
-
MetadataTemplateServiceImpl
@Autowired public MetadataTemplateServiceImpl(MetadataTemplateRepository repository, MetadataFieldRepository fieldRepository, javax.validation.Validator validator, MetadataRestrictionRepository metadataRestrictionRepository, UserRepository userRepository, ProjectUserJoinRepository pujRepository, UserGroupProjectJoinRepository userGroupProjectJoinRepository)
-
-
Method Detail
-
read
@PreAuthorize("hasPermission(#id, \'canReadMetadataTemplate\')") public MetadataTemplate read(java.lang.Long id) throws EntityNotFoundException
Read the object type by unique identifier.- Specified by:
read
in interfaceCRUDService<java.lang.Long,MetadataTemplate>
- Overrides:
read
in classCRUDServiceImpl<java.lang.Long,MetadataTemplate>
- Parameters:
id
- The unique identifier for this object.- Returns:
- The object corresponding to the unique identifier.
- Throws:
EntityNotFoundException
- If the identifier does not exist in the database.
-
updateMetadataTemplateInProject
@PreAuthorize("hasPermission(#template, \'canUpdateMetadataTemplate\')") public MetadataTemplate updateMetadataTemplateInProject(MetadataTemplate template)
Update aMetadataTemplate
within aProject
- Specified by:
updateMetadataTemplateInProject
in interfaceMetadataTemplateService
- Parameters:
template
-MetadataTemplate
- Returns:
MetadataTemplate
-
deleteMetadataTemplateFromProject
@PreAuthorize("hasPermission(#id, \'canUpdateMetadataTemplate\')") public void deleteMetadataTemplateFromProject(Project project, java.lang.Long id) throws EntityNotFoundException
Deleta aMetadataTemplate
from aProject
- Specified by:
deleteMetadataTemplateFromProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to template lives in.id
- theLong
identifier for aMetadataTemplate
- Throws:
EntityNotFoundException
-
createMetadataTemplateInProject
@PreAuthorize("hasPermission(#project, \'isProjectOwner\')") public MetadataTemplate createMetadataTemplateInProject(MetadataTemplate template, Project project)
Create a newMetadataTemplate
for aProject
- Specified by:
createMetadataTemplateInProject
in interfaceMetadataTemplateService
- Parameters:
template
- theMetadataTemplate
to createproject
- theProject
to create the template in- Returns:
- a
MetadataTemplate
-
getMetadataTemplatesForProject
@PreAuthorize("hasPermission(#project, \'canReadProject\')") public java.util.List<MetadataTemplate> getMetadataTemplatesForProject(Project project)
Get a list ofMetadataTemplate
s for a givenProject
- Specified by:
getMetadataTemplatesForProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
- Returns:
- a list of
MetadataTemplate
-
readMetadataField
@PreAuthorize("permitAll()") public MetadataTemplateField readMetadataField(java.lang.Long id)
Description copied from interface:MetadataTemplateService
Get aMetadataTemplateField
by itsLong
identifier- Specified by:
readMetadataField
in interfaceMetadataTemplateService
- Parameters:
id
-Long
identifier for aMetadataTemplateField
- Returns:
MetadataTemplateField
-
readMetadataFieldByLabel
@PreAuthorize("permitAll()") public MetadataTemplateField readMetadataFieldByLabel(java.lang.String label)
Get aMetadataTemplateField
by itsString
label- Specified by:
readMetadataFieldByLabel
in interfaceMetadataTemplateService
- Parameters:
label
- theString
label for theMetadataTemplateField
.- Returns:
MetadataTemplateField
-
readMetadataFieldByKey
@PreAuthorize("permitAll()") public MetadataTemplateField readMetadataFieldByKey(java.lang.String key)
Description copied from interface:MetadataTemplateService
Read aMetadataTemplateField
by its key- Specified by:
readMetadataFieldByKey
in interfaceMetadataTemplateService
- Parameters:
key
- key for the field- Returns:
- a
MetadataTemplateField
-
getStaticMetadataFields
@PreAuthorize("permitAll()") public java.util.List<StaticMetadataTemplateField> getStaticMetadataFields()
Description copied from interface:MetadataTemplateService
Get a list of allStaticMetadataTemplateField
s available- Specified by:
getStaticMetadataFields
in interfaceMetadataTemplateService
- Returns:
- a list of
StaticMetadataTemplateField
-
saveMetadataField
@PreAuthorize("permitAll()") public MetadataTemplateField saveMetadataField(MetadataTemplateField field)
Description copied from interface:MetadataTemplateService
Save a new metadata fields- Specified by:
saveMetadataField
in interfaceMetadataTemplateService
- Parameters:
field
- theMetadataTemplateField
to save.- Returns:
- the saved
MetadataTemplateField
-
getAllMetadataFieldsByQueryString
@PreAuthorize("permitAll()") public java.util.List<MetadataTemplateField> getAllMetadataFieldsByQueryString(java.lang.String query)
Get a list of allMetadataTemplateField
s that contain the query- Specified by:
getAllMetadataFieldsByQueryString
in interfaceMetadataTemplateService
- Parameters:
query
- theString
to search labels for.- Returns:
List
ofMetadataTemplateField
-
convertMetadataStringsToSet
@PreAuthorize("permitAll()") public java.util.Set<MetadataEntry> convertMetadataStringsToSet(java.util.Map<java.lang.String,MetadataEntry> metadataMap)
Get the appropriateMetadataTemplateField
s andMetadataEntry
s for a given map of Strings- Specified by:
convertMetadataStringsToSet
in interfaceMetadataTemplateService
- Parameters:
metadataMap
- the strings to convert- Returns:
- a Set of
MetadataEntry
s
-
getMetadataFieldsForProject
@PreAuthorize("hasPermission(#project, \'canReadProject\')") public java.util.List<MetadataTemplateField> getMetadataFieldsForProject(Project project)
Get all theMetadataTemplateField
s on a givenProject
- Specified by:
getMetadataFieldsForProject
in interfaceMetadataTemplateService
- Parameters:
project
- the Project to get fields for- Returns:
- a list of fields
-
getMetadataRestrictionForFieldAndProject
@PreAuthorize("hasPermission(#project, \'canReadProject\')") public MetadataRestriction getMetadataRestrictionForFieldAndProject(Project project, MetadataTemplateField field)
Description copied from interface:MetadataTemplateService
- Specified by:
getMetadataRestrictionForFieldAndProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to get the restriction forfield
- theMetadataTemplateField
to get the restriction for- Returns:
- The found
MetadataRestriction
. If there is no restriction defined, this may be null
-
getMetadataRestrictionsForProject
@PreAuthorize("hasPermission(#project, \'canReadProject\')") public java.util.List<MetadataRestriction> getMetadataRestrictionsForProject(Project project)
Description copied from interface:MetadataTemplateService
List all theMetadataRestriction
for the givenProject
- Specified by:
getMetadataRestrictionsForProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
the Project to get restrictions for- Returns:
- a List of all defined
MetadataRestriction
-
setMetadataRestriction
@PreAuthorize("hasPermission(#project, \'isProjectOwner\')") public MetadataRestriction setMetadataRestriction(Project project, MetadataTemplateField field, ProjectMetadataRole role)
Description copied from interface:MetadataTemplateService
Adds or updates theMetadataRestriction
for a project and field- Specified by:
setMetadataRestriction
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to add a restriction forfield
- the field to set a restriction onrole
- the role level to set the restriction for- Returns:
- the created
MetadataRestriction
-
getPermittedFieldsForTemplate
@PreAuthorize("hasPermission(#template, \'canReadMetadataTemplate\')") public java.util.List<MetadataTemplateField> getPermittedFieldsForTemplate(MetadataTemplate template)
Get allMetadataTemplateField
the current user is allowed to read for aMetadataTemplate
- Specified by:
getPermittedFieldsForTemplate
in interfaceMetadataTemplateService
- Parameters:
template
- theMetadataTemplate
to get fields for- Returns:
- a list of
MetadataTemplateField
-
getPermittedFieldsForCurrentUser
@PreAuthorize("hasPermission(#project, \'canReadProject\')") public java.util.List<MetadataTemplateField> getPermittedFieldsForCurrentUser(Project project, boolean includeTemplateFields)
Get allMetadataTemplateField
that the currently logged in user is allowed to read- Specified by:
getPermittedFieldsForCurrentUser
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to request fields fromincludeTemplateFields
- whether to include fields from the project's associatedMetadataTemplate
s- Returns:
- a list of
MetadataTemplateField
collecting the allowedMetadataTemplateField
-
getDefaultTemplateForProject
@PreAuthorize("hasPermission(#project, \'canReadProject\')") public MetadataTemplate getDefaultTemplateForProject(Project project)
Get the defaultMetadataTemplate
for the givenProject
(if one exists)- Specified by:
getDefaultTemplateForProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to get the template for- Returns:
- the default
MetadataTemplate
if one is set
-
updateDefaultMetadataTemplateForProject
@PreAuthorize("hasPermission(#project, \'canManageLocalProjectSettings\')") public MetadataTemplate updateDefaultMetadataTemplateForProject(Project project, MetadataTemplate template)
Update whichMetadataTemplate
is the default for the givenProject
- Specified by:
updateDefaultMetadataTemplateForProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to set a template ontemplate
- theMetadataTemplate
to set- Returns:
- the new default
MetadataTemplate
-
removeDefaultMetadataTemplateForProject
@PreAuthorize("hasPermission(#project, \'canManageLocalProjectSettings\')") public void removeDefaultMetadataTemplateForProject(Project project)
Remove the defaultMetadataTemplate
from the project. It will now use all fields as default- Specified by:
removeDefaultMetadataTemplateForProject
in interfaceMetadataTemplateService
- Parameters:
project
- theProject
to remove the template from
-
-