package eu.eudat.service.reference; import com.fasterxml.jackson.core.JsonProcessingException; import eu.eudat.model.Reference; import eu.eudat.model.persist.ReferencePersist; import eu.eudat.query.lookup.ReferenceSearchLookup; import gr.cite.tools.exception.MyApplicationException; import gr.cite.tools.exception.MyForbiddenException; import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.exception.MyValidationException; import gr.cite.tools.fieldset.FieldSet; import jakarta.xml.bind.JAXBException; import javax.management.InvalidApplicationException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; import java.util.List; import java.util.UUID; public interface ReferenceService { Reference persist(ReferencePersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JAXBException, JsonProcessingException, TransformerException, ParserConfigurationException; void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException; List searchReferenceData(ReferenceSearchLookup lookup) throws MyNotFoundException, InvalidApplicationException; }