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

ars.database.service.Service Maven / Gradle / Ivy

The newest version!
package ars.database.service;

import java.io.Serializable;

import ars.invoke.request.Requester;
import ars.database.repository.Query;
import ars.database.repository.Repository;
import ars.database.service.event.ServiceEvent;
import ars.database.service.event.ServiceListener;

/**
 * 业务操作接口
 *
 * @param  数据模型
 * @author wuyongqiang
 */
public interface Service {
    /**
     * 获取数据模型
     *
     * @return 数据模型
     */
    public Class getModel();

    /**
     * 获取数据持久化操作对象
     *
     * @return 数据持久化操作对象
     */
    public Repository getRepository();

    /**
     * 获取数据查询对象
     *
     * @param requester 请求对象
     * @return 数据查询对象
     */
    public Query getQuery(Requester requester);

    /**
     * 获取数据查询对象
     *
     * @param requester 请求对象
     * @param accurate  是否精确查询(排除无效参数)
     * @return 数据查询对象
     */
    public Query getQuery(Requester requester, boolean accurate);

    /**
     * 对象初始化
     *
     * @param requester 请求对象
     * @param entity    对象实体
     */
    public void initObject(Requester requester, T entity);

    /**
     * 将对象持久化
     *
     * @param requester 请求对象
     * @param object    数据对象
     * @return 主键标识
     */
    public Serializable saveObject(Requester requester, T object);

    /**
     * 修改对象
     *
     * @param requester 请求对象
     * @param object    数据对象
     */
    public void updateObject(Requester requester, T object);

    /**
     * 删除数据
     *
     * @param requester 请求对象
     * @param object    数据对象
     */
    public void deleteObject(Requester requester, T object);

    /**
     * 设置对象实体业务操作监听器
     *
     * @param        事件类型
     * @param type      事件类型对象
     * @param listeners 监听器数组
     */
    public  void setListeners(Class type, ServiceListener... listeners);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy