fr.ird.observe.services.service.data.OpenableService Maven / Gradle / Ivy
package fr.ird.observe.services.service.data;
/*-
* #%L
* ObServe Toolkit :: Service
* %%
* Copyright (C) 2017 - 2021 Ultreia.io
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* .
* #L%
*/
import fr.ird.observe.dto.BusinessDto;
import fr.ird.observe.dto.ToolkitIdDtoBean;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.dto.UsageCount;
import fr.ird.observe.dto.data.OpenableDto;
import fr.ird.observe.dto.form.Form;
import fr.ird.observe.dto.reference.DataDtoReference;
import fr.ird.observe.dto.reference.DataDtoReferenceSet;
import fr.ird.observe.dto.reference.UpdatedDataDtoReferenceSet;
import fr.ird.observe.dto.result.SaveResultDto;
import fr.ird.observe.security.Permission;
import fr.ird.observe.services.service.ObserveService;
import fr.ird.observe.services.spi.MethodCredential;
import io.ultreia.java4all.http.spi.Delete;
import io.ultreia.java4all.http.spi.Get;
import io.ultreia.java4all.http.spi.Post;
import io.ultreia.java4all.http.spi.Write;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* Created on 24/07/2021.
*
* @author Tony Chemit - [email protected]
* @since 5.0.39
*/
public interface OpenableService extends ObserveService {
/**
* For the given data dto, obtains the list of his brothers.
*
* @param dtoType dto type to look for
* @param id id
* @param dto type to look for
* @return the list of brothers
*/
@Get
@MethodCredential(Permission.READ_ALL)
List getBrothers(Class dtoType, String id);
/**
* For the given data dto, obtains the list of his brothers.
*
* @param dtoType dto type to look for
* @param parentId parent id
* @param dto type to look for
* @return the list of brothers
*/
@Get
@MethodCredential(Permission.READ_ALL)
List getBrothersFromParent(Class dtoType, String parentId);
@Get
@MethodCredential(Permission.READ_DATA)
DataDtoReferenceSet getChildren(Class dtoType, String parentId);
@Get
@MethodCredential(Permission.READ_DATA)
UpdatedDataDtoReferenceSet getChildrenUpdate(Class dtoType, String parentId, Date lastUpdate);
@Get
@MethodCredential(Permission.READ_DATA)
Form loadForm(Class dtoType, String id);
@Get
@MethodCredential(Permission.READ_DATA)
D loadDto(Class dtoType, String id);
@Get
@MethodCredential(Permission.READ_DATA)
boolean exists(Class dtoType, String id);
@Get
@MethodCredential(Permission.WRITE_DATA)
Form preCreate(Class dtoType, String parentId);
@Write
@Post
@MethodCredential(Permission.WRITE_DATA)
SaveResultDto save(String parentId, D dto);
@Post
@MethodCredential(Permission.READ_DATA)
UsageCount getDependenciesCount(Class dtoType, Set ids);
@Post
@MethodCredential(Permission.READ_DATA)
Set getDependencies(Class dtoType, Set ids, Class targetType);
@Write
@Delete
@MethodCredential(Permission.WRITE_DATA)
boolean delete(Class dtoType, String id);
@Write
@Post
@MethodCredential(Permission.WRITE_DATA)
Set move(Class dtoType, ToolkitIdDtoBean oldParentId, ToolkitIdDtoBean newParentId, Set ids);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy