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

com.dell.cpsd.service.common.client.rpc.AbstractMessageConsumer Maven / Gradle / Ivy

/**
 * Copyright © 2017 Dell Inc. or its subsidiaries. All Rights Reserved. 
 * Dell EMC Confidential/Proprietary Information
 */

package com.dell.cpsd.service.common.client.rpc;

import com.dell.cpsd.common.logging.ILogger;
import com.dell.cpsd.common.rabbitmq.consumer.UnhandledMessageConsumer;
import com.dell.cpsd.service.common.client.callback.IServiceCallback;
import com.dell.cpsd.service.common.client.log.SCCLMessageCode;

import java.util.HashMap;
import java.util.Map;

/**
 * 

* Copyright © 2017 Dell Inc. or its subsidiaries. All Rights Reserved. * Dell EMC Confidential/Proprietary Information *

* * @since 1.0 */ public abstract class AbstractMessageConsumer extends UnhandledMessageConsumer implements DelegatingMessageConsumer { private Map adapters = new HashMap<>(); @Override public void addAdapter(ServiceCallbackAdapter callback) { adapters.put(callback.getSourceClass(), callback); } void handleMessage(Object message) { if (message != null) { ServiceCallbackAdapter adapter = adapters.get(message.getClass()); if (adapter != null) { handleResponse(message, adapter); } } } protected void handleResponse(final M message, final ServiceCallbackAdapter handler) { if (message == null) { return; } final IServiceCallback callback = handler.take(message); if (callback == null) { return; } final R response = handler.transform(message); try { handler.consume(callback, response); } catch (Exception exception) { // log the exception thrown by the compute callback Object[] lparams = {"handleResponseCallback", exception.getMessage()}; getLogger().error(SCCLMessageCode.ERROR_CALLBACK_FAIL_E.getMessageCode(), lparams, exception); } } protected abstract ILogger getLogger(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy