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

import javax.annotation.processing.Generated;
import java.util.Map;

import org.apache.camel.CamelContext;
import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
import org.apache.camel.spi.PropertyConfigurerGetter;
import org.apache.camel.spi.ConfigurerStrategy;
import org.apache.camel.spi.GeneratedPropertyConfigurer;
import org.apache.camel.util.CaseInsensitiveMap;
import org.apache.camel.support.component.PropertyConfigurerSupport;

/**
 * Generated by camel build tools - do NOT edit this file!
 */
@Generated("org.apache.camel.maven.packaging.EndpointSchemaGeneratorMojo")
@SuppressWarnings("unchecked")
public class DaprEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        DaprEndpoint target = (DaprEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "bindingname":
        case "bindingName": target.getConfiguration().setBindingName(property(camelContext, java.lang.String.class, value)); return true;
        case "bindingoperation":
        case "bindingOperation": target.getConfiguration().setBindingOperation(property(camelContext, java.lang.String.class, value)); return true;
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
        case "client": target.getConfiguration().setClient(property(camelContext, io.dapr.client.DaprClient.class, value)); return true;
        case "concurrency": target.getConfiguration().setConcurrency(property(camelContext, io.dapr.client.domain.StateOptions.Concurrency.class, value)); return true;
        case "configkeys":
        case "configKeys": target.getConfiguration().setConfigKeys(property(camelContext, java.lang.String.class, value)); return true;
        case "configstore":
        case "configStore": target.getConfiguration().setConfigStore(property(camelContext, java.lang.String.class, value)); return true;
        case "consistency": target.getConfiguration().setConsistency(property(camelContext, io.dapr.client.domain.StateOptions.Consistency.class, value)); return true;
        case "contenttype":
        case "contentType": target.getConfiguration().setContentType(property(camelContext, java.lang.String.class, value)); return true;
        case "etag":
        case "eTag": target.getConfiguration().setETag(property(camelContext, java.lang.String.class, value)); return true;
        case "eventname":
        case "eventName": target.getConfiguration().setEventName(property(camelContext, java.lang.String.class, value)); return true;
        case "exceptionhandler":
        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
        case "exchangepattern":
        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
        case "expiryinseconds":
        case "expiryInSeconds": target.getConfiguration().setExpiryInSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
        case "getworkflowio":
        case "getWorkflowIO": target.getConfiguration().setGetWorkflowIO(property(camelContext, boolean.class, value)); return true;
        case "httpextension":
        case "httpExtension": target.getConfiguration().setHttpExtension(property(camelContext, io.dapr.client.domain.HttpExtension.class, value)); return true;
        case "key": target.getConfiguration().setKey(property(camelContext, java.lang.String.class, value)); return true;
        case "lazystartproducer":
        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
        case "lockoperation":
        case "lockOperation": target.getConfiguration().setLockOperation(property(camelContext, org.apache.camel.component.dapr.LockOperation.class, value)); return true;
        case "lockowner":
        case "lockOwner": target.getConfiguration().setLockOwner(property(camelContext, java.lang.String.class, value)); return true;
        case "methodtoinvoke":
        case "methodToInvoke": target.getConfiguration().setMethodToInvoke(property(camelContext, java.lang.String.class, value)); return true;
        case "previewclient":
        case "previewClient": target.getConfiguration().setPreviewClient(property(camelContext, io.dapr.client.DaprPreviewClient.class, value)); return true;
        case "pubsubname":
        case "pubSubName": target.getConfiguration().setPubSubName(property(camelContext, java.lang.String.class, value)); return true;
        case "reason": target.getConfiguration().setReason(property(camelContext, java.lang.String.class, value)); return true;
        case "resourceid":
        case "resourceId": target.getConfiguration().setResourceId(property(camelContext, java.lang.String.class, value)); return true;
        case "secretstore":
        case "secretStore": target.getConfiguration().setSecretStore(property(camelContext, java.lang.String.class, value)); return true;
        case "servicetoinvoke":
        case "serviceToInvoke": target.getConfiguration().setServiceToInvoke(property(camelContext, java.lang.String.class, value)); return true;
        case "stateoperation":
        case "stateOperation": target.getConfiguration().setStateOperation(property(camelContext, org.apache.camel.component.dapr.StateOperation.class, value)); return true;
        case "statestore":
        case "stateStore": target.getConfiguration().setStateStore(property(camelContext, java.lang.String.class, value)); return true;
        case "storename":
        case "storeName": target.getConfiguration().setStoreName(property(camelContext, java.lang.String.class, value)); return true;
        case "timeout": target.getConfiguration().setTimeout(property(camelContext, java.time.Duration.class, value)); return true;
        case "topic": target.getConfiguration().setTopic(property(camelContext, java.lang.String.class, value)); return true;
        case "verb": target.getConfiguration().setVerb(property(camelContext, java.lang.String.class, value)); return true;
        case "workflowclass":
        case "workflowClass": target.getConfiguration().setWorkflowClass(property(camelContext, java.lang.String.class, value)); return true;
        case "workflowclient":
        case "workflowClient": target.getConfiguration().setWorkflowClient(property(camelContext, io.dapr.workflows.client.DaprWorkflowClient.class, value)); return true;
        case "workflowinstanceid":
        case "workflowInstanceId": target.getConfiguration().setWorkflowInstanceId(property(camelContext, java.lang.String.class, value)); return true;
        case "workflowoperation":
        case "workflowOperation": target.getConfiguration().setWorkflowOperation(property(camelContext, org.apache.camel.component.dapr.WorkflowOperation.class, value)); return true;
        case "workflowstarttime":
        case "workflowStartTime": target.getConfiguration().setWorkflowStartTime(property(camelContext, java.time.Instant.class, value)); return true;
        case "workflowversion":
        case "workflowVersion": target.getConfiguration().setWorkflowVersion(property(camelContext, java.lang.String.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public String[] getAutowiredNames() {
        return new String[]{"client", "httpExtension", "previewClient", "workflowClient"};
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "bindingname":
        case "bindingName": return java.lang.String.class;
        case "bindingoperation":
        case "bindingOperation": return java.lang.String.class;
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": return boolean.class;
        case "client": return io.dapr.client.DaprClient.class;
        case "concurrency": return io.dapr.client.domain.StateOptions.Concurrency.class;
        case "configkeys":
        case "configKeys": return java.lang.String.class;
        case "configstore":
        case "configStore": return java.lang.String.class;
        case "consistency": return io.dapr.client.domain.StateOptions.Consistency.class;
        case "contenttype":
        case "contentType": return java.lang.String.class;
        case "etag":
        case "eTag": return java.lang.String.class;
        case "eventname":
        case "eventName": return java.lang.String.class;
        case "exceptionhandler":
        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
        case "exchangepattern":
        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
        case "expiryinseconds":
        case "expiryInSeconds": return java.lang.Integer.class;
        case "getworkflowio":
        case "getWorkflowIO": return boolean.class;
        case "httpextension":
        case "httpExtension": return io.dapr.client.domain.HttpExtension.class;
        case "key": return java.lang.String.class;
        case "lazystartproducer":
        case "lazyStartProducer": return boolean.class;
        case "lockoperation":
        case "lockOperation": return org.apache.camel.component.dapr.LockOperation.class;
        case "lockowner":
        case "lockOwner": return java.lang.String.class;
        case "methodtoinvoke":
        case "methodToInvoke": return java.lang.String.class;
        case "previewclient":
        case "previewClient": return io.dapr.client.DaprPreviewClient.class;
        case "pubsubname":
        case "pubSubName": return java.lang.String.class;
        case "reason": return java.lang.String.class;
        case "resourceid":
        case "resourceId": return java.lang.String.class;
        case "secretstore":
        case "secretStore": return java.lang.String.class;
        case "servicetoinvoke":
        case "serviceToInvoke": return java.lang.String.class;
        case "stateoperation":
        case "stateOperation": return org.apache.camel.component.dapr.StateOperation.class;
        case "statestore":
        case "stateStore": return java.lang.String.class;
        case "storename":
        case "storeName": return java.lang.String.class;
        case "timeout": return java.time.Duration.class;
        case "topic": return java.lang.String.class;
        case "verb": return java.lang.String.class;
        case "workflowclass":
        case "workflowClass": return java.lang.String.class;
        case "workflowclient":
        case "workflowClient": return io.dapr.workflows.client.DaprWorkflowClient.class;
        case "workflowinstanceid":
        case "workflowInstanceId": return java.lang.String.class;
        case "workflowoperation":
        case "workflowOperation": return org.apache.camel.component.dapr.WorkflowOperation.class;
        case "workflowstarttime":
        case "workflowStartTime": return java.time.Instant.class;
        case "workflowversion":
        case "workflowVersion": return java.lang.String.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        DaprEndpoint target = (DaprEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "bindingname":
        case "bindingName": return target.getConfiguration().getBindingName();
        case "bindingoperation":
        case "bindingOperation": return target.getConfiguration().getBindingOperation();
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
        case "client": return target.getConfiguration().getClient();
        case "concurrency": return target.getConfiguration().getConcurrency();
        case "configkeys":
        case "configKeys": return target.getConfiguration().getConfigKeys();
        case "configstore":
        case "configStore": return target.getConfiguration().getConfigStore();
        case "consistency": return target.getConfiguration().getConsistency();
        case "contenttype":
        case "contentType": return target.getConfiguration().getContentType();
        case "etag":
        case "eTag": return target.getConfiguration().getETag();
        case "eventname":
        case "eventName": return target.getConfiguration().getEventName();
        case "exceptionhandler":
        case "exceptionHandler": return target.getExceptionHandler();
        case "exchangepattern":
        case "exchangePattern": return target.getExchangePattern();
        case "expiryinseconds":
        case "expiryInSeconds": return target.getConfiguration().getExpiryInSeconds();
        case "getworkflowio":
        case "getWorkflowIO": return target.getConfiguration().isGetWorkflowIO();
        case "httpextension":
        case "httpExtension": return target.getConfiguration().getHttpExtension();
        case "key": return target.getConfiguration().getKey();
        case "lazystartproducer":
        case "lazyStartProducer": return target.isLazyStartProducer();
        case "lockoperation":
        case "lockOperation": return target.getConfiguration().getLockOperation();
        case "lockowner":
        case "lockOwner": return target.getConfiguration().getLockOwner();
        case "methodtoinvoke":
        case "methodToInvoke": return target.getConfiguration().getMethodToInvoke();
        case "previewclient":
        case "previewClient": return target.getConfiguration().getPreviewClient();
        case "pubsubname":
        case "pubSubName": return target.getConfiguration().getPubSubName();
        case "reason": return target.getConfiguration().getReason();
        case "resourceid":
        case "resourceId": return target.getConfiguration().getResourceId();
        case "secretstore":
        case "secretStore": return target.getConfiguration().getSecretStore();
        case "servicetoinvoke":
        case "serviceToInvoke": return target.getConfiguration().getServiceToInvoke();
        case "stateoperation":
        case "stateOperation": return target.getConfiguration().getStateOperation();
        case "statestore":
        case "stateStore": return target.getConfiguration().getStateStore();
        case "storename":
        case "storeName": return target.getConfiguration().getStoreName();
        case "timeout": return target.getConfiguration().getTimeout();
        case "topic": return target.getConfiguration().getTopic();
        case "verb": return target.getConfiguration().getVerb();
        case "workflowclass":
        case "workflowClass": return target.getConfiguration().getWorkflowClass();
        case "workflowclient":
        case "workflowClient": return target.getConfiguration().getWorkflowClient();
        case "workflowinstanceid":
        case "workflowInstanceId": return target.getConfiguration().getWorkflowInstanceId();
        case "workflowoperation":
        case "workflowOperation": return target.getConfiguration().getWorkflowOperation();
        case "workflowstarttime":
        case "workflowStartTime": return target.getConfiguration().getWorkflowStartTime();
        case "workflowversion":
        case "workflowVersion": return target.getConfiguration().getWorkflowVersion();
        default: return null;
        }
    }
}

