argos/dmp-backend/core/src/main/java/eu/eudat/service/lock/LockService.java

30 lines
1.1 KiB
Java

package eu.eudat.service.lock;
import eu.eudat.commons.enums.LockTargetType;
import eu.eudat.model.Lock;
import eu.eudat.model.LockStatus;
import eu.eudat.model.persist.LockPersist;
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 javax.management.InvalidApplicationException;
import java.util.UUID;
public interface LockService {
Lock persist(LockPersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException;
LockStatus isLocked(UUID target, FieldSet fields) throws InvalidApplicationException;
void lock(UUID target, LockTargetType targetType) throws InvalidApplicationException;
void touch(UUID target) throws InvalidApplicationException;
void unlock(UUID target) throws InvalidApplicationException;
void deleteAndSave(UUID id, UUID target) throws MyForbiddenException, InvalidApplicationException;
}