Class BaseService<M extends BaseModel<I>,C extends BaseCriteria<I>,D,R extends BaseRepository<M,C,I,U>,I extends Serializable,U>

java.lang.Object
org.bardframework.crud.api.base.BaseService<M,C,D,R,I,U>

public abstract class BaseService<M extends BaseModel<I>,C extends BaseCriteria<I>,D,R extends BaseRepository<M,C,I,U>,I extends Serializable,U> extends Object
Created by vahid on 1/17/17.
  • Field Details

    • LOGGER

      protected final org.slf4j.Logger LOGGER
    • modelClazz

      protected final Class<M extends BaseModel<I>> modelClazz
    • criteriaClazz

      protected final Class<C extends BaseCriteria<I>> criteriaClazz
    • dtoClazz

      protected final Class<D> dtoClazz
    • repository

      protected final R extends BaseRepository<M,C,I,U> repository
  • Constructor Details

    • BaseService

      public BaseService(R repository)
  • Method Details

    • getEmptyCriteria

      public C getEmptyCriteria()
    • get

      public List<M> get(Collection<I> ids, U user)
    • get

      public M get(I id, U user)
      get by id
    • get

      public List<M> get(U user)
    • get

      public List<M> get(C criteria, U user)
      get all data match with given criteria
    • getOne

      public M getOne(C criteria, U user)
      Returns:
      one entity with given criteria
    • get

      public PagedData<M> get(C criteria, org.springframework.data.domain.Pageable pageable, U user)
    • preFetch

      protected void preFetch(C criteria, U user)
    • postFetch

      protected void postFetch(C criteria, List<M> result, U user)
    • postFetch

      protected void postFetch(M model, U user)
    • delete

      @Transactional public long delete(I id, U user)
      delete data with given id
      Parameters:
      id - identifier of data that must be delete
      Returns:
      count of deleted data
    • delete

      @Transactional public long delete(Collection<I> ids, U user)
    • delete

      @Transactional public long delete(C criteria, U user)
    • preDelete

      protected void preDelete(C criteria, List<M> models, U user)
      execute before deleting data
    • preDelete

      protected void preDelete(C criteria, M model, U user)
    • postDelete

      protected void postDelete(C criteria, List<M> deletedModels, long deletedCount, U user)
    • postDelete

      protected void postDelete(M deletedModel, U user)
      execute after deleting data
    • save

      @Transactional public M save(D dto, U user)
      save new data
      Returns:
      saved data model
    • save

      @Transactional public List<M> save(List<D> dtos, U user)
      save new data
      Returns:
      saved data models
    • onSave

      protected abstract M onSave(D dto, U user)
      converting dto to model for save
    • preSave

      protected void preSave(List<D> dtos, U user)
    • preSave

      protected void preSave(D dto, U user)
    • postSave

      protected void postSave(List<D> dtos, List<M> savedModels, U user)
    • postSave

      protected void postSave(M savedModel, D dto, U user)
    • patch

      @Transactional public M patch(I id, Map<String,Object> patch, U user)
    • prePatch

      protected void prePatch(M previousModel, Map<String,Object> patch, U user)
    • postPatch

      protected void postPatch(M previousModel, M patchedModel, Map<String,Object> patch, U user)
    • update

      @Transactional public M update(I id, D dto, U user)
    • onUpdate

      protected abstract void onUpdate(D dto, M previousModel, U user)
    • preUpdate

      protected void preUpdate(M previousModel, D dto, U user)
    • postUpdate

      protected void postUpdate(M previousModel, M updatedModel, D dto, U user)
    • getIds

      public List<I> getIds(C criteria, U user)
    • getCount

      public long getCount(C criteria, U user)
    • isExist

      public boolean isExist(C criteria, U user)
    • isNotExist

      public boolean isNotExist(C criteria, U user)
    • getRepository

      public R getRepository()