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

com.kaka.notice.Notifier Maven / Gradle / Ivy

package com.kaka.notice;

/**
 * 消息通知者
 *
 * @author zkpursuit
 */
abstract public class Notifier implements INotifier {

    /**
     * 消息中央调度器
     */
    Facade facade;

    void setFacade(Facade facade) {
        this.facade = facade;
    }

    /**
     * 同步发送消息
     *
     * @param msg 待发送的消息
     */
    @Override
    public final void sendMessage(Message msg) {
        if (facade != null) {
            facade.sendMessage(msg);
        }
    }

    /**
     * 发送消息
     *
     * @param msg 待发送的消息
     */
    @Override
    public final void sendMessage(Message msg, boolean asyn) {
        if (facade != null) {
            facade.sendMessage(msg, asyn);
        }
    }

    /**
     * 发送到远程消息队列,并由消息队列消费端处理事件消息。
     * 
* {@link SyncResult} 同步获取结果将不受支持。 *
* 支持{@link AsynResult}或者异步回调获取远程事件执行结果。 *
* 保证事件的顺利执行完全由消息队列的运行情况而决定。 * * @param msg 待发送的消息 */ @Override public void sendRemoteMessage(Message msg) { if (facade != null) { facade.sendRemoteMessage(msg); } } /** * 定时调度执行事件通知 * * @param msg 事件 * @param scheduler 定时调度器 */ @Override public void sendMessage(Message msg, Scheduler scheduler) { if (facade != null) { facade.sendMessage(msg, scheduler); } } /** * 取消调度 * * @param cmd 事件名 * @param group 调度器组名 */ @Override public void cancelSchedule(Object cmd, String group) { if (facade != null) { facade.cancelSchedule(cmd, group); } } /** * 获取通知派发器 * * @return 通知派发器 */ protected Facade getFacade() { return this.facade; } /** * 获取数据模型 * * @param 类型限定 * @param name 数据模型名 * @return 数据模型 */ protected T retrieveProxy(String name) { if (facade == null) { return null; } return this.facade.retrieveProxy(name); } /** * 获取数据模型 * * @param 类型限定 * @param cls 数据模型类型 * @return 数据模型 */ protected T retrieveProxy(Class cls) { if (facade == null) { return null; } return this.facade.retrieveProxy(cls); } /** * 获取事件观察者 * * @param 类型限定 * @param mediatorName 事件观察者唯一标识 * @return 事件观察者 */ protected T retrieveMediator(String mediatorName) { if (facade == null) { return null; } return this.facade.retrieveMediator(mediatorName); } /** * 获取事件观察者 * * @param 类型限定 * @param mediatorClass 事件观察者类型 * @return 事件观察者 */ protected T retrieveMediator(Class mediatorClass) { if (facade == null) { return null; } return this.facade.retrieveMediator(mediatorClass); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy