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

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.component.docling.DoclingConfiguration;

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

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        org.apache.camel.component.docling.DoclingConfiguration target = (org.apache.camel.component.docling.DoclingConfiguration) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "abortonerror":
        case "abortOnError": target.setAbortOnError(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "apikeyheader":
        case "apiKeyHeader": target.setApiKeyHeader(property(camelContext, java.lang.String.class, value)); return true;
        case "asyncpollinterval":
        case "asyncPollInterval": target.setAsyncPollInterval(property(camelContext, long.class, value)); return true;
        case "asynctaskttl":
        case "asyncTaskTtl": target.setAsyncTaskTtl(property(camelContext, long.class, value)); return true;
        case "asynctimeout":
        case "asyncTimeout": target.setAsyncTimeout(property(camelContext, long.class, value)); return true;
        case "authenticationscheme":
        case "authenticationScheme": target.setAuthenticationScheme(property(camelContext, org.apache.camel.component.docling.AuthenticationScheme.class, value)); return true;
        case "authenticationtoken":
        case "authenticationToken": target.setAuthenticationToken(property(camelContext, java.lang.String.class, value)); return true;
        case "batchfailonfirsterror":
        case "batchFailOnFirstError": target.setBatchFailOnFirstError(property(camelContext, boolean.class, value)); return true;
        case "batchparallelism":
        case "batchParallelism": target.setBatchParallelism(property(camelContext, int.class, value)); return true;
        case "batchsize":
        case "batchSize": target.setBatchSize(property(camelContext, int.class, value)); return true;
        case "batchtimeout":
        case "batchTimeout": target.setBatchTimeout(property(camelContext, long.class, value)); return true;
        case "chunkingincluderawtext":
        case "chunkingIncludeRawText": target.setChunkingIncludeRawText(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "chunkingmaxtokens":
        case "chunkingMaxTokens": target.setChunkingMaxTokens(property(camelContext, java.lang.Integer.class, value)); return true;
        case "chunkingmergepeers":
        case "chunkingMergePeers": target.setChunkingMergePeers(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "chunkingtokenizer":
        case "chunkingTokenizer": target.setChunkingTokenizer(property(camelContext, java.lang.String.class, value)); return true;
        case "chunkingusemarkdowntables":
        case "chunkingUseMarkdownTables": target.setChunkingUseMarkdownTables(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "contentinbody":
        case "contentInBody": target.setContentInBody(property(camelContext, boolean.class, value)); return true;
        case "docodeenrichment":
        case "doCodeEnrichment": target.setDoCodeEnrichment(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "doformulaenrichment":
        case "doFormulaEnrichment": target.setDoFormulaEnrichment(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "doocr":
        case "doOcr": target.setDoOcr(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "dopictureclassification":
        case "doPictureClassification": target.setDoPictureClassification(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "dopicturedescription":
        case "doPictureDescription": target.setDoPictureDescription(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "dotablestructure":
        case "doTableStructure": target.setDoTableStructure(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "doclingcommand":
        case "doclingCommand": target.setDoclingCommand(property(camelContext, java.lang.String.class, value)); return true;
        case "doclingserveurl":
        case "doclingServeUrl": target.setDoclingServeUrl(property(camelContext, java.lang.String.class, value)); return true;
        case "documenttimeout":
        case "documentTimeout": target.setDocumentTimeout(property(camelContext, java.lang.Long.class, value)); return true;
        case "enableocr":
        case "enableOCR": target.setEnableOCR(property(camelContext, boolean.class, value)); return true;
        case "forceocr":
        case "forceOcr": target.setForceOcr(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "imageexportmode":
        case "imageExportMode": target.setImageExportMode(property(camelContext, java.lang.String.class, value)); return true;
        case "imagesscale":
        case "imagesScale": target.setImagesScale(property(camelContext, java.lang.Double.class, value)); return true;
        case "includeimages":
        case "includeImages": target.setIncludeImages(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "includelayoutinfo":
        case "includeLayoutInfo": target.setIncludeLayoutInfo(property(camelContext, boolean.class, value)); return true;
        case "includemetadatainheaders":
        case "includeMetadataInHeaders": target.setIncludeMetadataInHeaders(property(camelContext, boolean.class, value)); return true;
        case "includerawmetadata":
        case "includeRawMetadata": target.setIncludeRawMetadata(property(camelContext, boolean.class, value)); return true;
        case "maxfilesize":
        case "maxFileSize": target.setMaxFileSize(property(camelContext, long.class, value)); return true;
        case "mdpagebreakplaceholder":
        case "mdPageBreakPlaceholder": target.setMdPageBreakPlaceholder(property(camelContext, java.lang.String.class, value)); return true;
        case "oauthprofile":
        case "oauthProfile": target.setOauthProfile(property(camelContext, java.lang.String.class, value)); return true;
        case "ocrengine":
        case "ocrEngine": target.setOcrEngine(property(camelContext, java.lang.String.class, value)); return true;
        case "ocrlanguage":
        case "ocrLanguage": target.setOcrLanguage(property(camelContext, java.lang.String.class, value)); return true;
        case "operation": target.setOperation(property(camelContext, org.apache.camel.component.docling.DoclingOperations.class, value)); return true;
        case "outputformat":
        case "outputFormat": target.setOutputFormat(property(camelContext, java.lang.String.class, value)); return true;
        case "pdfbackend":
        case "pdfBackend": target.setPdfBackend(property(camelContext, java.lang.String.class, value)); return true;
        case "pipeline": target.setPipeline(property(camelContext, java.lang.String.class, value)); return true;
        case "processtimeout":
        case "processTimeout": target.setProcessTimeout(property(camelContext, long.class, value)); return true;
        case "splitbatchresults":
        case "splitBatchResults": target.setSplitBatchResults(property(camelContext, boolean.class, value)); return true;
        case "tablecellmatching":
        case "tableCellMatching": target.setTableCellMatching(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "tablemode":
        case "tableMode": target.setTableMode(property(camelContext, java.lang.String.class, value)); return true;
        case "useasyncmode":
        case "useAsyncMode": target.setUseAsyncMode(property(camelContext, boolean.class, value)); return true;
        case "usedoclingserve":
        case "useDoclingServe": target.setUseDoclingServe(property(camelContext, boolean.class, value)); return true;
        case "workingdirectory":
        case "workingDirectory": target.setWorkingDirectory(property(camelContext, java.lang.String.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "abortonerror":
        case "abortOnError": return java.lang.Boolean.class;
        case "apikeyheader":
        case "apiKeyHeader": return java.lang.String.class;
        case "asyncpollinterval":
        case "asyncPollInterval": return long.class;
        case "asynctaskttl":
        case "asyncTaskTtl": return long.class;
        case "asynctimeout":
        case "asyncTimeout": return long.class;
        case "authenticationscheme":
        case "authenticationScheme": return org.apache.camel.component.docling.AuthenticationScheme.class;
        case "authenticationtoken":
        case "authenticationToken": return java.lang.String.class;
        case "batchfailonfirsterror":
        case "batchFailOnFirstError": return boolean.class;
        case "batchparallelism":
        case "batchParallelism": return int.class;
        case "batchsize":
        case "batchSize": return int.class;
        case "batchtimeout":
        case "batchTimeout": return long.class;
        case "chunkingincluderawtext":
        case "chunkingIncludeRawText": return java.lang.Boolean.class;
        case "chunkingmaxtokens":
        case "chunkingMaxTokens": return java.lang.Integer.class;
        case "chunkingmergepeers":
        case "chunkingMergePeers": return java.lang.Boolean.class;
        case "chunkingtokenizer":
        case "chunkingTokenizer": return java.lang.String.class;
        case "chunkingusemarkdowntables":
        case "chunkingUseMarkdownTables": return java.lang.Boolean.class;
        case "contentinbody":
        case "contentInBody": return boolean.class;
        case "docodeenrichment":
        case "doCodeEnrichment": return java.lang.Boolean.class;
        case "doformulaenrichment":
        case "doFormulaEnrichment": return java.lang.Boolean.class;
        case "doocr":
        case "doOcr": return java.lang.Boolean.class;
        case "dopictureclassification":
        case "doPictureClassification": return java.lang.Boolean.class;
        case "dopicturedescription":
        case "doPictureDescription": return java.lang.Boolean.class;
        case "dotablestructure":
        case "doTableStructure": return java.lang.Boolean.class;
        case "doclingcommand":
        case "doclingCommand": return java.lang.String.class;
        case "doclingserveurl":
        case "doclingServeUrl": return java.lang.String.class;
        case "documenttimeout":
        case "documentTimeout": return java.lang.Long.class;
        case "enableocr":
        case "enableOCR": return boolean.class;
        case "forceocr":
        case "forceOcr": return java.lang.Boolean.class;
        case "imageexportmode":
        case "imageExportMode": return java.lang.String.class;
        case "imagesscale":
        case "imagesScale": return java.lang.Double.class;
        case "includeimages":
        case "includeImages": return java.lang.Boolean.class;
        case "includelayoutinfo":
        case "includeLayoutInfo": return boolean.class;
        case "includemetadatainheaders":
        case "includeMetadataInHeaders": return boolean.class;
        case "includerawmetadata":
        case "includeRawMetadata": return boolean.class;
        case "maxfilesize":
        case "maxFileSize": return long.class;
        case "mdpagebreakplaceholder":
        case "mdPageBreakPlaceholder": return java.lang.String.class;
        case "oauthprofile":
        case "oauthProfile": return java.lang.String.class;
        case "ocrengine":
        case "ocrEngine": return java.lang.String.class;
        case "ocrlanguage":
        case "ocrLanguage": return java.lang.String.class;
        case "operation": return org.apache.camel.component.docling.DoclingOperations.class;
        case "outputformat":
        case "outputFormat": return java.lang.String.class;
        case "pdfbackend":
        case "pdfBackend": return java.lang.String.class;
        case "pipeline": return java.lang.String.class;
        case "processtimeout":
        case "processTimeout": return long.class;
        case "splitbatchresults":
        case "splitBatchResults": return boolean.class;
        case "tablecellmatching":
        case "tableCellMatching": return java.lang.Boolean.class;
        case "tablemode":
        case "tableMode": return java.lang.String.class;
        case "useasyncmode":
        case "useAsyncMode": return boolean.class;
        case "usedoclingserve":
        case "useDoclingServe": return boolean.class;
        case "workingdirectory":
        case "workingDirectory": return java.lang.String.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        org.apache.camel.component.docling.DoclingConfiguration target = (org.apache.camel.component.docling.DoclingConfiguration) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "abortonerror":
        case "abortOnError": return target.getAbortOnError();
        case "apikeyheader":
        case "apiKeyHeader": return target.getApiKeyHeader();
        case "asyncpollinterval":
        case "asyncPollInterval": return target.getAsyncPollInterval();
        case "asynctaskttl":
        case "asyncTaskTtl": return target.getAsyncTaskTtl();
        case "asynctimeout":
        case "asyncTimeout": return target.getAsyncTimeout();
        case "authenticationscheme":
        case "authenticationScheme": return target.getAuthenticationScheme();
        case "authenticationtoken":
        case "authenticationToken": return target.getAuthenticationToken();
        case "batchfailonfirsterror":
        case "batchFailOnFirstError": return target.isBatchFailOnFirstError();
        case "batchparallelism":
        case "batchParallelism": return target.getBatchParallelism();
        case "batchsize":
        case "batchSize": return target.getBatchSize();
        case "batchtimeout":
        case "batchTimeout": return target.getBatchTimeout();
        case "chunkingincluderawtext":
        case "chunkingIncludeRawText": return target.getChunkingIncludeRawText();
        case "chunkingmaxtokens":
        case "chunkingMaxTokens": return target.getChunkingMaxTokens();
        case "chunkingmergepeers":
        case "chunkingMergePeers": return target.getChunkingMergePeers();
        case "chunkingtokenizer":
        case "chunkingTokenizer": return target.getChunkingTokenizer();
        case "chunkingusemarkdowntables":
        case "chunkingUseMarkdownTables": return target.getChunkingUseMarkdownTables();
        case "contentinbody":
        case "contentInBody": return target.isContentInBody();
        case "docodeenrichment":
        case "doCodeEnrichment": return target.getDoCodeEnrichment();
        case "doformulaenrichment":
        case "doFormulaEnrichment": return target.getDoFormulaEnrichment();
        case "doocr":
        case "doOcr": return target.getDoOcr();
        case "dopictureclassification":
        case "doPictureClassification": return target.getDoPictureClassification();
        case "dopicturedescription":
        case "doPictureDescription": return target.getDoPictureDescription();
        case "dotablestructure":
        case "doTableStructure": return target.getDoTableStructure();
        case "doclingcommand":
        case "doclingCommand": return target.getDoclingCommand();
        case "doclingserveurl":
        case "doclingServeUrl": return target.getDoclingServeUrl();
        case "documenttimeout":
        case "documentTimeout": return target.getDocumentTimeout();
        case "enableocr":
        case "enableOCR": return target.isEnableOCR();
        case "forceocr":
        case "forceOcr": return target.getForceOcr();
        case "imageexportmode":
        case "imageExportMode": return target.getImageExportMode();
        case "imagesscale":
        case "imagesScale": return target.getImagesScale();
        case "includeimages":
        case "includeImages": return target.getIncludeImages();
        case "includelayoutinfo":
        case "includeLayoutInfo": return target.isIncludeLayoutInfo();
        case "includemetadatainheaders":
        case "includeMetadataInHeaders": return target.isIncludeMetadataInHeaders();
        case "includerawmetadata":
        case "includeRawMetadata": return target.isIncludeRawMetadata();
        case "maxfilesize":
        case "maxFileSize": return target.getMaxFileSize();
        case "mdpagebreakplaceholder":
        case "mdPageBreakPlaceholder": return target.getMdPageBreakPlaceholder();
        case "oauthprofile":
        case "oauthProfile": return target.getOauthProfile();
        case "ocrengine":
        case "ocrEngine": return target.getOcrEngine();
        case "ocrlanguage":
        case "ocrLanguage": return target.getOcrLanguage();
        case "operation": return target.getOperation();
        case "outputformat":
        case "outputFormat": return target.getOutputFormat();
        case "pdfbackend":
        case "pdfBackend": return target.getPdfBackend();
        case "pipeline": return target.getPipeline();
        case "processtimeout":
        case "processTimeout": return target.getProcessTimeout();
        case "splitbatchresults":
        case "splitBatchResults": return target.isSplitBatchResults();
        case "tablecellmatching":
        case "tableCellMatching": return target.getTableCellMatching();
        case "tablemode":
        case "tableMode": return target.getTableMode();
        case "useasyncmode":
        case "useAsyncMode": return target.isUseAsyncMode();
        case "usedoclingserve":
        case "useDoclingServe": return target.isUseDoclingServe();
        case "workingdirectory":
        case "workingDirectory": return target.getWorkingDirectory();
        default: return null;
        }
    }
}

