All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.chyxion.summer.services.BaseQueryService Maven / Gradle / Ivy

There is a newer version: 0.0.2-RELEASE
Show newest version
package me.chyxion.summer.services;

import java.util.List;
import me.chyxion.summer.models.M0;
import javax.validation.constraints.Min;
import me.chyxion.summer.mybatis.Search;
import me.chyxion.summer.models.ViewModel;
import me.chyxion.summer.models.ListResult;
import javax.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated;

/**
 * @version 0.0.1
 * @since 0.0.1
 * @author Shaun Chyxion 
* [email protected]
* Aug 11, 2016 1:36:04 PM */ @Validated public interface BaseQueryService> { int SCAN_FETCH_BATCH_SIZE = 32; /** * find view model by search * @param search search * @return view model */ ViewModel findViewModel(@NotNull Search search); /** * find view model by id * @param search search * @return view model */ ViewModel findViewModel(@NotNull ID id); /** * list view models * @param search search * @return view models */ @NotNull List> listViewModels(@NotNull Search search); /** * list view models page * @param search search * @return view models page */ @NotNull ListResult> listViewModelsPage(@NotNull Search search); /** * find model by id * @param id model id * @return model */ T find(@NotNull ID id); /** * find model by search * @param search search * @return result */ T find(@NotNull Search search); /** * list by search * @param search search * @return list result */ @NotNull List list(Search search); /** * list page by search * @param search search * @return list result */ @NotNull ListResult listPage(@NotNull Search search); /** * model to view model * @param model db model * @return view model */ ViewModel toViewModel(T model); /** * count by search * @param search search * @return count */ int count(@NotNull Search search); /** * return count all * @return count all */ int count(); /** * scan model of all * @param scanner scanner */ T scan(@NotNull Scanner scanner); /** * scan model by search * @param search search * @param scanner scanner */ T scan(Search search, @NotNull Scanner scanner); /** * scan model by search * @param batchSize fetch models batch size * @param search search * @param scanner scanner */ T scan(@Min(1) int batchSize, Search search, @NotNull Scanner scanner); interface Scanner { /** * scan model * @param model model * @return false to break */ boolean run(T model); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy