/** * */ package org.inbio.m3s.service; import java.util.List; import org.inbio.m3s.dto.media.BriefMediaOutputDTO; import org.inbio.m3s.dto.metadata.MetadataDTO; import org.inbio.m3s.dto.metadata.TechnicalMetadataDTO; import org.inbio.m3s.dto.metadata.TechnicalMetadataItemDTO; /** * @author jgutierrez * */ public interface MetadataManager { /** * * @param mediaKey * @return * @throws IllegalArgumentException */ public MetadataDTO getMetadataByMedia(String mediaKey) throws IllegalArgumentException; /** * * @param quantity * @return * @throws IllegalArgumentException */ public List<BriefMediaOutputDTO> getLastPublicMetadataBrief(int quantity) throws IllegalArgumentException; /** * * @param mediaKey * @return * @throws IllegalArgumentException */ public BriefMediaOutputDTO getMetadataBriefByMedia(String mediaKey) throws IllegalArgumentException; /** * * @param metadataDTO * @throws IllegalArgumentException */ public void updateMetadata(MetadataDTO metadataDTO) throws IllegalArgumentException; /** * Saves a new MetadataDTO in the database * * @param metadataDTO * @return the ID of the new Media * @throws IllegalArgumentException */ public Integer saveMetadata(MetadataDTO metadataDTO) throws IllegalArgumentException; /** * * @param mediaKey * @param mediaAttributesList * @throws IllegalArgumentException */ public void saveTechnicalMetadata(String mediaKey, List<TechnicalMetadataItemDTO> mediaAttributesList) throws IllegalArgumentException; /** * Gets the Technical Metadata information from the database. * * @param mediaKey * @return * @throws IllegalArgumentException is the mediaKey is invalid. */ public TechnicalMetadataDTO getTechMetadataByMedia(String mediaKey) throws IllegalArgumentException; /** * This method returns a TechnicalMetadataDTO object with *no* values in the * TechnicalMetadataItemDTO List elements, ideal for user entry technicalMetadata * * @param mediaTypeKey * @return */ public TechnicalMetadataDTO getTechMetadataByMediaType(String mediaTypeKey); /** * Returns the technical metadata that corresponds for the mediaType. * If the file has no technical Metadata then a null TechnicalMetadataDTO will be return, * and is highly recommended to call the getTechMetadataByMediaType method to complete the DTO. * * @param mediaTypeKey * @param fileAddress * @return * @see MetadataManager.getTechMetadataByMediaType(String mediaTypeKey) */ public TechnicalMetadataDTO getTechMetadataFromFile(String mediaTypeKey, String fileAddress); /** Are this methods private?**/ /* public void addProjectsList(String mediaKey, List<ProjectDTO> projectLiteList) throws IllegalArgumentException; public void addKeywordsList(String mediaKey, List<KeywordDTO> keywordsList) throws IllegalArgumentException; public void deleteKeywords(String mediaKey, List<KeywordDTO> keywordsList) throws IllegalArgumentException; public void addMediaUses(String mediaKey, List<MediaUseDTO> mediaUsesList) throws IllegalArgumentException; public void deleteMediaUses(String mediaKey, List<MediaUseDTO> mediaUsesList) throws IllegalArgumentException; public void addTaxons(String mediaKey, List<TaxonLiteDTO> taxonsList) throws IllegalArgumentException; public void deleteTaxons(String mediaKey, List<TaxonLiteDTO> taxonsList) throws IllegalArgumentException; public void addGatherings(String mediaKey, List<GatheringLiteDTO> gatheringsList) throws IllegalArgumentException; public void deleteGatherings(String mediaKey, List<GatheringLiteDTO> gatheringsList) throws IllegalArgumentException; public void addSpecimens(String mediaKey, List<SpecimenLiteDTO> specimensList) throws IllegalArgumentException; public void deleteSpecimens(String mediaKey, List<SpecimenLiteDTO> specimensList) throws IllegalArgumentException; public void addObservations(String mediaKey, List<ObservationLiteDTO> observationsList) throws IllegalArgumentException; public void deleteObservations(String mediaKey, List<ObservationLiteDTO> observationsList) throws IllegalArgumentException; */ }