/* Generated by camel build tools - do NOT edit this file! */
package org.apache.camel.component.atomix.client.queue;

import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.spi.InvokeOnHeaderStrategy;
import org.apache.camel.component.atomix.client.queue.AtomixQueueProducer;

/**
 * Generated by camel build tools - do NOT edit this file!
 */
@SuppressWarnings("unchecked")
public class AtomixQueueProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {

    @Override
    public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
        org.apache.camel.component.atomix.client.queue.AtomixQueueProducer target = (org.apache.camel.component.atomix.client.queue.AtomixQueueProducer) obj;
        switch (key) {
        case "add":
        case "ADD": target.onAdd(exchange.getMessage(), callback); return callback;
        case "clear":
        case "CLEAR": target.onClear(exchange.getMessage(), callback); return callback;
        case "contains":
        case "CONTAINS": target.onContains(exchange.getMessage(), callback); return callback;
        case "is_empty":
        case "IS_EMPTY": target.onIsEmpty(exchange.getMessage(), callback); return callback;
        case "offer":
        case "OFFER": target.onOffer(exchange.getMessage(), callback); return callback;
        case "peek":
        case "PEEK": target.onPeek(exchange.getMessage(), callback); return callback;
        case "poll":
        case "POLL": target.onPoll(exchange.getMessage(), callback); return callback;
        case "remove":
        case "REMOVE": target.onRemove(exchange.getMessage(), callback); return callback;
        case "size":
        case "SIZE": target.onSize(exchange.getMessage(), callback); return callback;
        default: return null;
        }
    }

}

