text:
package org.apache.camel.builder.endpoint.dsl;

import java.util.*;
import java.util.Map;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.stream.*;
import javax.annotation.Generated;
import org.apache.camel.builder.EndpointConsumerBuilder;
import org.apache.camel.builder.EndpointProducerBuilder;
import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;

/**
 * Exchanges messages with an IBM i system using data queues, message queues, or
 * program call. IBM i is the replacement for AS/400 and iSeries servers.
 *
 * Generated by camel build tools - do NOT edit this file!
 */
@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
public interface Jt400EndpointBuilderFactory {

    /**
     * Builder for endpoint consumers for the JT400 component.
     */
    public interface Jt400EndpointConsumerBuilder
            extends
                EndpointConsumerBuilder {
        default AdvancedJt400EndpointConsumerBuilder advanced() {
            return (AdvancedJt400EndpointConsumerBuilder) this;
        }
        /**
         * Sets the CCSID to use for the connection with the IBM i system.
         *
         * The option is a: int type.
         *
         * Group: common
         *
         * @param ccsid the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder ccsid(int ccsid) {
            doSetProperty("ccsid", ccsid);
            return this;
        }
        /**
         * Sets the CCSID to use for the connection with the IBM i system.
         *
         * The option will be converted to a int type.
         *
         * Group: common
         *
         * @param ccsid the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder ccsid(String ccsid) {
            doSetProperty("ccsid", ccsid);
            return this;
        }
        /**
         * Sets the data format for sending messages.
         *
         * The option is a:
         * org.apache.camel.component.jt400.Jt400Configuration.Format type.
         *
         * Default: text
         * Group: common
         *
         * @param format the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder format(
                org.apache.camel.component.jt400.Jt400Configuration.Format format) {
            doSetProperty("format", format);
            return this;
        }
        /**
         * Sets the data format for sending messages.
         *
         * The option will be converted to a
         * org.apache.camel.component.jt400.Jt400Configuration.Format type.
         *
         * Default: text
         * Group: common
         *
         * @param format the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder format(String format) {
            doSetProperty("format", format);
            return this;
        }
        /**
         * Sets whether IBM i prompting is enabled in the environment running
         * Camel.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: common
         *
         * @param guiAvailable the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder guiAvailable(boolean guiAvailable) {
            doSetProperty("guiAvailable", guiAvailable);
            return this;
        }
        /**
         * Sets whether IBM i prompting is enabled in the environment running
         * Camel.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: common
         *
         * @param guiAvailable the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder guiAvailable(String guiAvailable) {
            doSetProperty("guiAvailable", guiAvailable);
            return this;
        }
        /**
         * Whether to use keyed or non-keyed data queues.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: common
         *
         * @param keyed the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder keyed(boolean keyed) {
            doSetProperty("keyed", keyed);
            return this;
        }
        /**
         * Whether to use keyed or non-keyed data queues.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: common
         *
         * @param keyed the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder keyed(String keyed) {
            doSetProperty("keyed", keyed);
            return this;
        }
        /**
         * Search key for keyed data queues.
         *
         * The option is a: java.lang.String type.
         *
         * Group: common
         *
         * @param searchKey the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder searchKey(String searchKey) {
            doSetProperty("searchKey", searchKey);
            return this;
        }
        /**
         * Action to be taken on messages when read from a message queue.
         * Messages can be marked as old (OLD), removed from the queue (REMOVE),
         * or neither (SAME).
         *
         * The option is a:
         * org.apache.camel.component.jt400.Jt400Configuration.MessageAction type.
         *
         * Default: OLD
         * Group: consumer
         *
         * @param messageAction the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder messageAction(
                org.apache.camel.component.jt400.Jt400Configuration.MessageAction messageAction) {
            doSetProperty("messageAction", messageAction);
            return this;
        }
        /**
         * Action to be taken on messages when read from a message queue.
         * Messages can be marked as old (OLD), removed from the queue (REMOVE),
         * or neither (SAME).
         *
         * The option will be converted to a
         * org.apache.camel.component.jt400.Jt400Configuration.MessageAction type.
         *
         * Default: OLD
         * Group: consumer
         *
         * @param messageAction the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder messageAction(String messageAction) {
            doSetProperty("messageAction", messageAction);
            return this;
        }
        /**
         * Timeout in millis the consumer will wait while trying to read a new
         * message of the data queue.
         *
         * The option is a: int type.
         *
         * Default: 30000
         * Group: consumer
         *
         * @param readTimeout the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder readTimeout(int readTimeout) {
            doSetProperty("readTimeout", readTimeout);
            return this;
        }
        /**
         * Timeout in millis the consumer will wait while trying to read a new
         * message of the data queue.
         *
         * The option will be converted to a int type.
         *
         * Default: 30000
         * Group: consumer
         *
         * @param readTimeout the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder readTimeout(String readTimeout) {
            doSetProperty("readTimeout", readTimeout);
            return this;
        }
        /**
         * Search type such as EQ for equal etc.
         *
         * The option is a:
         * org.apache.camel.component.jt400.Jt400Configuration.SearchType type.
         *
         * Default: EQ
         * Group: consumer
         *
         * @param searchType the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder searchType(
                org.apache.camel.component.jt400.Jt400Configuration.SearchType searchType) {
            doSetProperty("searchType", searchType);
            return this;
        }
        /**
         * Search type such as EQ for equal etc.
         *
         * The option will be converted to a
         * org.apache.camel.component.jt400.Jt400Configuration.SearchType type.
         *
         * Default: EQ
         * Group: consumer
         *
         * @param searchType the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder searchType(String searchType) {
            doSetProperty("searchType", searchType);
            return this;
        }
        /**
         * If the polling consumer did not poll any files, you can enable this
         * option to send an empty message (no body) instead.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: consumer
         *
         * @param sendEmptyMessageWhenIdle the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder sendEmptyMessageWhenIdle(
                boolean sendEmptyMessageWhenIdle) {
            doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle);
            return this;
        }
        /**
         * If the polling consumer did not poll any files, you can enable this
         * option to send an empty message (no body) instead.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: consumer
         *
         * @param sendEmptyMessageWhenIdle the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder sendEmptyMessageWhenIdle(
                String sendEmptyMessageWhenIdle) {
            doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle);
            return this;
        }
        /**
         * If true, the consumer endpoint will set the
         * Jt400Constants.MESSAGE_REPLYTO_KEY header of the camel message for
         * any IBM i inquiry messages received. If that message is then routed
         * to a producer endpoint, the action will not be processed as sending a
         * message to the queue, but rather a reply to the specific inquiry
         * message.
         *
         * The option is a: boolean type.
         *
         * Default: true
         * Group: consumer
         *
         * @param sendingReply the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder sendingReply(boolean sendingReply) {
            doSetProperty("sendingReply", sendingReply);
            return this;
        }
        /**
         * If true, the consumer endpoint will set the
         * Jt400Constants.MESSAGE_REPLYTO_KEY header of the camel message for
         * any IBM i inquiry messages received. If that message is then routed
         * to a producer endpoint, the action will not be processed as sending a
         * message to the queue, but rather a reply to the specific inquiry
         * message.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: true
         * Group: consumer
         *
         * @param sendingReply the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder sendingReply(String sendingReply) {
            doSetProperty("sendingReply", sendingReply);
            return this;
        }
        /**
         * The number of subsequent error polls (failed due some error) that
         * should happen before the backoffMultipler should kick-in.
         *
         * The option is a: int type.
         *
         * Group: scheduler
         *
         * @param backoffErrorThreshold the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder backoffErrorThreshold(
                int backoffErrorThreshold) {
            doSetProperty("backoffErrorThreshold", backoffErrorThreshold);
            return this;
        }
        /**
         * The number of subsequent error polls (failed due some error) that
         * should happen before the backoffMultipler should kick-in.
         *
         * The option will be converted to a int type.
         *
         * Group: scheduler
         *
         * @param backoffErrorThreshold the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder backoffErrorThreshold(
                String backoffErrorThreshold) {
            doSetProperty("backoffErrorThreshold", backoffErrorThreshold);
            return this;
        }
        /**
         * The number of subsequent idle polls that should happen before the
         * backoffMultipler should kick-in.
         *
         * The option is a: int type.
         *
         * Group: scheduler
         *
         * @param backoffIdleThreshold the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder backoffIdleThreshold(
                int backoffIdleThreshold) {
            doSetProperty("backoffIdleThreshold", backoffIdleThreshold);
            return this;
        }
        /**
         * The number of subsequent idle polls that should happen before the
         * backoffMultipler should kick-in.
         *
         * The option will be converted to a int type.
         *
         * Group: scheduler
         *
         * @param backoffIdleThreshold the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder backoffIdleThreshold(
                String backoffIdleThreshold) {
            doSetProperty("backoffIdleThreshold", backoffIdleThreshold);
            return this;
        }
        /**
         * To let the scheduled polling consumer backoff if there has been a
         * number of subsequent idles/errors in a row. The multiplier is then
         * the number of polls that will be skipped before the next actual
         * attempt is happening again. When this option is in use then
         * backoffIdleThreshold and/or backoffErrorThreshold must also be
         * configured.
         *
         * The option is a: int type.
         *
         * Group: scheduler
         *
         * @param backoffMultiplier the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder backoffMultiplier(
                int backoffMultiplier) {
            doSetProperty("backoffMultiplier", backoffMultiplier);
            return this;
        }
        /**
         * To let the scheduled polling consumer backoff if there has been a
         * number of subsequent idles/errors in a row. The multiplier is then
         * the number of polls that will be skipped before the next actual
         * attempt is happening again. When this option is in use then
         * backoffIdleThreshold and/or backoffErrorThreshold must also be
         * configured.
         *
         * The option will be converted to a int type.
         *
         * Group: scheduler
         *
         * @param backoffMultiplier the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder backoffMultiplier(
                String backoffMultiplier) {
            doSetProperty("backoffMultiplier", backoffMultiplier);
            return this;
        }
        /**
         * Milliseconds before the next poll.
         *
         * The option is a: long type.
         *
         * Default: 500
         * Group: scheduler
         *
         * @param delay the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder delay(long delay) {
            doSetProperty("delay", delay);
            return this;
        }
        /**
         * Milliseconds before the next poll.
         *
         * The option will be converted to a long type.
         *
         * Default: 500
         * Group: scheduler
         *
         * @param delay the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder delay(String delay) {
            doSetProperty("delay", delay);
            return this;
        }
        /**
         * If greedy is enabled, then the ScheduledPollConsumer will run
         * immediately again, if the previous run polled 1 or more messages.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: scheduler
         *
         * @param greedy the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder greedy(boolean greedy) {
            doSetProperty("greedy", greedy);
            return this;
        }
        /**
         * If greedy is enabled, then the ScheduledPollConsumer will run
         * immediately again, if the previous run polled 1 or more messages.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: scheduler
         *
         * @param greedy the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder greedy(String greedy) {
            doSetProperty("greedy", greedy);
            return this;
        }
        /**
         * Milliseconds before the first poll starts.
         *
         * The option is a: long type.
         *
         * Default: 1000
         * Group: scheduler
         *
         * @param initialDelay the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder initialDelay(long initialDelay) {
            doSetProperty("initialDelay", initialDelay);
            return this;
        }
        /**
         * Milliseconds before the first poll starts.
         *
         * The option will be converted to a long type.
         *
         * Default: 1000
         * Group: scheduler
         *
         * @param initialDelay the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder initialDelay(String initialDelay) {
            doSetProperty("initialDelay", initialDelay);
            return this;
        }
        /**
         * Specifies a maximum limit of number of fires. So if you set it to 1,
         * the scheduler will only fire once. If you set it to 5, it will only
         * fire five times. A value of zero or negative means fire forever.
         *
         * The option is a: long type.
         *
         * Default: 0
         * Group: scheduler
         *
         * @param repeatCount the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder repeatCount(long repeatCount) {
            doSetProperty("repeatCount", repeatCount);
            return this;
        }
        /**
         * Specifies a maximum limit of number of fires. So if you set it to 1,
         * the scheduler will only fire once. If you set it to 5, it will only
         * fire five times. A value of zero or negative means fire forever.
         *
         * The option will be converted to a long type.
         *
         * Default: 0
         * Group: scheduler
         *
         * @param repeatCount the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder repeatCount(String repeatCount) {
            doSetProperty("repeatCount", repeatCount);
            return this;
        }
        /**
         * The consumer logs a start/complete log line when it polls. This
         * option allows you to configure the logging level for that.
         *
         * The option is a:
         * org.apache.camel.LoggingLevel type.
         *
         * Default: TRACE
         * Group: scheduler
         *
         * @param runLoggingLevel the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder runLoggingLevel(
                org.apache.camel.LoggingLevel runLoggingLevel) {
            doSetProperty("runLoggingLevel", runLoggingLevel);
            return this;
        }
        /**
         * The consumer logs a start/complete log line when it polls. This
         * option allows you to configure the logging level for that.
         *
         * The option will be converted to a
         * org.apache.camel.LoggingLevel type.
         *
         * Default: TRACE
         * Group: scheduler
         *
         * @param runLoggingLevel the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder runLoggingLevel(
                String runLoggingLevel) {
            doSetProperty("runLoggingLevel", runLoggingLevel);
            return this;
        }
        /**
         * Allows for configuring a custom/shared thread pool to use for the
         * consumer. By default each consumer has its own single threaded thread
         * pool.
         *
         * The option is a:
         * java.util.concurrent.ScheduledExecutorService type.
         *
         * Group: scheduler
         *
         * @param scheduledExecutorService the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder scheduledExecutorService(
                ScheduledExecutorService scheduledExecutorService) {
            doSetProperty("scheduledExecutorService", scheduledExecutorService);
            return this;
        }
        /**
         * Allows for configuring a custom/shared thread pool to use for the
         * consumer. By default each consumer has its own single threaded thread
         * pool.
         *
         * The option will be converted to a
         * java.util.concurrent.ScheduledExecutorService type.
         *
         * Group: scheduler
         *
         * @param scheduledExecutorService the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder scheduledExecutorService(
                String scheduledExecutorService) {
            doSetProperty("scheduledExecutorService", scheduledExecutorService);
            return this;
        }
        /**
         * To use a cron scheduler from either camel-spring or camel-quartz
         * component. Use value spring or quartz for built in scheduler.
         *
         * The option is a: java.lang.Object type.
         *
         * Default: none
         * Group: scheduler
         *
         * @param scheduler the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder scheduler(Object scheduler) {
            doSetProperty("scheduler", scheduler);
            return this;
        }
        /**
         * To use a cron scheduler from either camel-spring or camel-quartz
         * component. Use value spring or quartz for built in scheduler.
         *
         * The option will be converted to a
         * java.lang.Object type.
         *
         * Default: none
         * Group: scheduler
         *
         * @param scheduler the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder scheduler(String scheduler) {
            doSetProperty("scheduler", scheduler);
            return this;
        }
        /**
         * To configure additional properties when using a custom scheduler or
         * any of the Quartz, Spring based scheduler.
         *
         * The option is a: java.util.Map<java.lang.String,
         * java.lang.Object> type.
         * The option is multivalued, and you can use the
         * schedulerProperties(String, Object) method to add a value (call the
         * method multiple times to set more values).
         *
         * Group: scheduler
         *
         * @param key the option key
         * @param value the option value
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder schedulerProperties(
                String key,
                Object value) {
            doSetMultiValueProperty("schedulerProperties", "scheduler." + key, value);
            return this;
        }
        /**
         * To configure additional properties when using a custom scheduler or
         * any of the Quartz, Spring based scheduler.
         *
         * The option is a: java.util.Map<java.lang.String,
         * java.lang.Object> type.
         * The option is multivalued, and you can use the
         * schedulerProperties(String, Object) method to add a value (call the
         * method multiple times to set more values).
         *
         * Group: scheduler
         *
         * @param values the values
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder schedulerProperties(Map values) {
            doSetMultiValueProperties("schedulerProperties", "scheduler.", values);
            return this;
        }
        /**
         * Whether the scheduler should be auto started.
         *
         * The option is a: boolean type.
         *
         * Default: true
         * Group: scheduler
         *
         * @param startScheduler the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder startScheduler(
                boolean startScheduler) {
            doSetProperty("startScheduler", startScheduler);
            return this;
        }
        /**
         * Whether the scheduler should be auto started.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: true
         * Group: scheduler
         *
         * @param startScheduler the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder startScheduler(
                String startScheduler) {
            doSetProperty("startScheduler", startScheduler);
            return this;
        }
        /**
         * Time unit for initialDelay and delay options.
         *
         * The option is a:
         * java.util.concurrent.TimeUnit type.
         *
         * Default: MILLISECONDS
         * Group: scheduler
         *
         * @param timeUnit the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder timeUnit(TimeUnit timeUnit) {
            doSetProperty("timeUnit", timeUnit);
            return this;
        }
        /**
         * Time unit for initialDelay and delay options.
         *
         * The option will be converted to a
         * java.util.concurrent.TimeUnit type.
         *
         * Default: MILLISECONDS
         * Group: scheduler
         *
         * @param timeUnit the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder timeUnit(String timeUnit) {
            doSetProperty("timeUnit", timeUnit);
            return this;
        }
        /**
         * Controls if fixed delay or fixed rate is used. See
         * ScheduledExecutorService in JDK for details.
         *
         * The option is a: boolean type.
         *
         * Default: true
         * Group: scheduler
         *
         * @param useFixedDelay the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder useFixedDelay(boolean useFixedDelay) {
            doSetProperty("useFixedDelay", useFixedDelay);
            return this;
        }
        /**
         * Controls if fixed delay or fixed rate is used. See
         * ScheduledExecutorService in JDK for details.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: true
         * Group: scheduler
         *
         * @param useFixedDelay the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder useFixedDelay(String useFixedDelay) {
            doSetProperty("useFixedDelay", useFixedDelay);
            return this;
        }
        /**
         * Whether connections to IBM i are secured with SSL.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: security
         *
         * @param secured the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder secured(boolean secured) {
            doSetProperty("secured", secured);
            return this;
        }
        /**
         * Whether connections to IBM i are secured with SSL.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: security
         *
         * @param secured the value to set
         * @return the dsl builder
         */
        default Jt400EndpointConsumerBuilder secured(String secured) {
            doSetProperty("secured", secured);
            return this;
        }
    }

    /**
     * Advanced builder for endpoint consumers for the JT400 component.
     */
    public interface AdvancedJt400EndpointConsumerBuilder
            extends
                EndpointConsumerBuilder {
        default Jt400EndpointConsumerBuilder basic() {
            return (Jt400EndpointConsumerBuilder) this;
        }
        /**
         * Allows for bridging the consumer to the Camel routing Error Handler,
         * which mean any exceptions occurred while the consumer is trying to
         * pickup incoming messages, or the likes, will now be processed as a
         * message and handled by the routing Error Handler. By default the
         * consumer will use the org.apache.camel.spi.ExceptionHandler to deal
         * with exceptions, that will be logged at WARN or ERROR level and
         * ignored.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: consumer (advanced)
         *
         * @param bridgeErrorHandler the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder bridgeErrorHandler(
                boolean bridgeErrorHandler) {
            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
            return this;
        }
        /**
         * Allows for bridging the consumer to the Camel routing Error Handler,
         * which mean any exceptions occurred while the consumer is trying to
         * pickup incoming messages, or the likes, will now be processed as a
         * message and handled by the routing Error Handler. By default the
         * consumer will use the org.apache.camel.spi.ExceptionHandler to deal
         * with exceptions, that will be logged at WARN or ERROR level and
         * ignored.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: consumer (advanced)
         *
         * @param bridgeErrorHandler the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder bridgeErrorHandler(
                String bridgeErrorHandler) {
            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
            return this;
        }
        /**
         * To let the consumer use a custom ExceptionHandler. Notice if the
         * option bridgeErrorHandler is enabled then this option is not in use.
         * By default the consumer will deal with exceptions, that will be
         * logged at WARN or ERROR level and ignored.
         *
         * The option is a:
         * org.apache.camel.spi.ExceptionHandler type.
         *
         * Group: consumer (advanced)
         *
         * @param exceptionHandler the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder exceptionHandler(
                org.apache.camel.spi.ExceptionHandler exceptionHandler) {
            doSetProperty("exceptionHandler", exceptionHandler);
            return this;
        }
        /**
         * To let the consumer use a custom ExceptionHandler. Notice if the
         * option bridgeErrorHandler is enabled then this option is not in use.
         * By default the consumer will deal with exceptions, that will be
         * logged at WARN or ERROR level and ignored.
         *
         * The option will be converted to a
         * org.apache.camel.spi.ExceptionHandler type.
         *
         * Group: consumer (advanced)
         *
         * @param exceptionHandler the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder exceptionHandler(
                String exceptionHandler) {
            doSetProperty("exceptionHandler", exceptionHandler);
            return this;
        }
        /**
         * Sets the exchange pattern when the consumer creates an exchange.
         *
         * The option is a:
         * org.apache.camel.ExchangePattern type.
         *
         * Group: consumer (advanced)
         *
         * @param exchangePattern the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder exchangePattern(
                org.apache.camel.ExchangePattern exchangePattern) {
            doSetProperty("exchangePattern", exchangePattern);
            return this;
        }
        /**
         * Sets the exchange pattern when the consumer creates an exchange.
         *
         * The option will be converted to a
         * org.apache.camel.ExchangePattern type.
         *
         * Group: consumer (advanced)
         *
         * @param exchangePattern the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder exchangePattern(
                String exchangePattern) {
            doSetProperty("exchangePattern", exchangePattern);
            return this;
        }
        /**
         * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
         * you to provide your custom implementation to control error handling
         * usually occurred during the poll operation before an Exchange have
         * been created and being routed in Camel.
         *
         * The option is a:
         * org.apache.camel.spi.PollingConsumerPollStrategy type.
         *
         * Group: consumer (advanced)
         *
         * @param pollStrategy the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder pollStrategy(
                org.apache.camel.spi.PollingConsumerPollStrategy pollStrategy) {
            doSetProperty("pollStrategy", pollStrategy);
            return this;
        }
        /**
         * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
         * you to provide your custom implementation to control error handling
         * usually occurred during the poll operation before an Exchange have
         * been created and being routed in Camel.
         *
         * The option will be converted to a
         * org.apache.camel.spi.PollingConsumerPollStrategy type.
         *
         * Group: consumer (advanced)
         *
         * @param pollStrategy the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointConsumerBuilder pollStrategy(
                String pollStrategy) {
            doSetProperty("pollStrategy", pollStrategy);
            return this;
        }
    }

    /**
     * Builder for endpoint producers for the JT400 component.
     */
    public interface Jt400EndpointProducerBuilder
            extends
                EndpointProducerBuilder {
        default AdvancedJt400EndpointProducerBuilder advanced() {
            return (AdvancedJt400EndpointProducerBuilder) this;
        }
        /**
         * Sets the CCSID to use for the connection with the IBM i system.
         *
         * The option is a: int type.
         *
         * Group: common
         *
         * @param ccsid the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder ccsid(int ccsid) {
            doSetProperty("ccsid", ccsid);
            return this;
        }
        /**
         * Sets the CCSID to use for the connection with the IBM i system.
         *
         * The option will be converted to a int type.
         *
         * Group: common
         *
         * @param ccsid the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder ccsid(String ccsid) {
            doSetProperty("ccsid", ccsid);
            return this;
        }
        /**
         * Sets the data format for sending messages.
         *
         * The option is a:
         * org.apache.camel.component.jt400.Jt400Configuration.Format type.
         *
         * Default: text
         * Group: common
         *
         * @param format the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder format(
                org.apache.camel.component.jt400.Jt400Configuration.Format format) {
            doSetProperty("format", format);
            return this;
        }
        /**
         * Sets the data format for sending messages.
         *
         * The option will be converted to a
         * org.apache.camel.component.jt400.Jt400Configuration.Format type.
         *
         * Default: text
         * Group: common
         *
         * @param format the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder format(String format) {
            doSetProperty("format", format);
            return this;
        }
        /**
         * Sets whether IBM i prompting is enabled in the environment running
         * Camel.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: common
         *
         * @param guiAvailable the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder guiAvailable(boolean guiAvailable) {
            doSetProperty("guiAvailable", guiAvailable);
            return this;
        }
        /**
         * Sets whether IBM i prompting is enabled in the environment running
         * Camel.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: common
         *
         * @param guiAvailable the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder guiAvailable(String guiAvailable) {
            doSetProperty("guiAvailable", guiAvailable);
            return this;
        }
        /**
         * Whether to use keyed or non-keyed data queues.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: common
         *
         * @param keyed the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder keyed(boolean keyed) {
            doSetProperty("keyed", keyed);
            return this;
        }
        /**
         * Whether to use keyed or non-keyed data queues.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: common
         *
         * @param keyed the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder keyed(String keyed) {
            doSetProperty("keyed", keyed);
            return this;
        }
        /**
         * Search key for keyed data queues.
         *
         * The option is a: java.lang.String type.
         *
         * Group: common
         *
         * @param searchKey the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder searchKey(String searchKey) {
            doSetProperty("searchKey", searchKey);
            return this;
        }
        /**
         * Specifies which fields (program parameters) are output parameters.
         *
         * The option is a: java.lang.Integer[] type.
         *
         * Group: producer
         *
         * @param outputFieldsIdxArray the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder outputFieldsIdxArray(
                Integer[] outputFieldsIdxArray) {
            doSetProperty("outputFieldsIdxArray", outputFieldsIdxArray);
            return this;
        }
        /**
         * Specifies which fields (program parameters) are output parameters.
         *
         * The option will be converted to a
         * java.lang.Integer[] type.
         *
         * Group: producer
         *
         * @param outputFieldsIdxArray the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder outputFieldsIdxArray(
                String outputFieldsIdxArray) {
            doSetProperty("outputFieldsIdxArray", outputFieldsIdxArray);
            return this;
        }
        /**
         * Specifies the fields (program parameters) length as in the IBM i
         * program definition.
         *
         * The option is a: java.lang.Integer[] type.
         *
         * Group: producer
         *
         * @param outputFieldsLengthArray the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder outputFieldsLengthArray(
                Integer[] outputFieldsLengthArray) {
            doSetProperty("outputFieldsLengthArray", outputFieldsLengthArray);
            return this;
        }
        /**
         * Specifies the fields (program parameters) length as in the IBM i
         * program definition.
         *
         * The option will be converted to a
         * java.lang.Integer[] type.
         *
         * Group: producer
         *
         * @param outputFieldsLengthArray the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder outputFieldsLengthArray(
                String outputFieldsLengthArray) {
            doSetProperty("outputFieldsLengthArray", outputFieldsLengthArray);
            return this;
        }
        /**
         * Procedure name from a service program to call.
         *
         * The option is a: java.lang.String type.
         *
         * Group: producer
         *
         * @param procedureName the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder procedureName(String procedureName) {
            doSetProperty("procedureName", procedureName);
            return this;
        }
        /**
         * Whether connections to IBM i are secured with SSL.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: security
         *
         * @param secured the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder secured(boolean secured) {
            doSetProperty("secured", secured);
            return this;
        }
        /**
         * Whether connections to IBM i are secured with SSL.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: security
         *
         * @param secured the value to set
         * @return the dsl builder
         */
        default Jt400EndpointProducerBuilder secured(String secured) {
            doSetProperty("secured", secured);
            return this;
        }
    }

    /**
     * Advanced builder for endpoint producers for the JT400 component.
     */
    public interface AdvancedJt400EndpointProducerBuilder
            extends
                EndpointProducerBuilder {
        default Jt400EndpointProducerBuilder basic() {
            return (Jt400EndpointProducerBuilder) this;
        }
        /**
         * Whether the producer should be started lazy (on the first message).
         * By starting lazy you can use this to allow CamelContext and routes to
         * startup in situations where a producer may otherwise fail during
         * starting and cause the route to fail being started. By deferring this
         * startup to be lazy then the startup failure can be handled during
         * routing messages via Camel's routing error handlers. Beware that when
         * the first message is processed then creating and starting the
         * producer may take a little time and prolong the total processing time
         * of the processing.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: producer (advanced)
         *
         * @param lazyStartProducer the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointProducerBuilder lazyStartProducer(
                boolean lazyStartProducer) {
            doSetProperty("lazyStartProducer", lazyStartProducer);
            return this;
        }
        /**
         * Whether the producer should be started lazy (on the first message).
         * By starting lazy you can use this to allow CamelContext and routes to
         * startup in situations where a producer may otherwise fail during
         * starting and cause the route to fail being started. By deferring this
         * startup to be lazy then the startup failure can be handled during
         * routing messages via Camel's routing error handlers. Beware that when
         * the first message is processed then creating and starting the
         * producer may take a little time and prolong the total processing time
         * of the processing.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: producer (advanced)
         *
         * @param lazyStartProducer the value to set
         * @return the dsl builder
         */
        default AdvancedJt400EndpointProducerBuilder lazyStartProducer(
                String lazyStartProducer) {
            doSetProperty("lazyStartProducer", lazyStartProducer);
            return this;
        }
    }

    /**
     * Builder for endpoint for the JT400 component.
     */
    public interface Jt400EndpointBuilder
            extends
                Jt400EndpointConsumerBuilder,
                Jt400EndpointProducerBuilder {
        default AdvancedJt400EndpointBuilder advanced() {
            return (AdvancedJt400EndpointBuilder) this;
        }
        /**
         * Sets the CCSID to use for the connection with the IBM i system.
         *
         * The option is a: int type.
         *
         * Group: common
         *
         * @param ccsid the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder ccsid(int ccsid) {
            doSetProperty("ccsid", ccsid);
            return this;
        }
        /**
         * Sets the CCSID to use for the connection with the IBM i system.
         *
         * The option will be converted to a int type.
         *
         * Group: common
         *
         * @param ccsid the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder ccsid(String ccsid) {
            doSetProperty("ccsid", ccsid);
            return this;
        }
        /**
         * Sets the data format for sending messages.
         *
         * The option is a:
         * org.apache.camel.component.jt400.Jt400Configuration.Format type.
         *
         * Default: text
         * Group: common
         *
         * @param format the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder format(
                org.apache.camel.component.jt400.Jt400Configuration.Format format) {
            doSetProperty("format", format);
            return this;
        }
        /**
         * Sets the data format for sending messages.
         *
         * The option will be converted to a
         * org.apache.camel.component.jt400.Jt400Configuration.Format type.
         *
         * Default: text
         * Group: common
         *
         * @param format the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder format(String format) {
            doSetProperty("format", format);
            return this;
        }
        /**
         * Sets whether IBM i prompting is enabled in the environment running
         * Camel.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: common
         *
         * @param guiAvailable the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder guiAvailable(boolean guiAvailable) {
            doSetProperty("guiAvailable", guiAvailable);
            return this;
        }
        /**
         * Sets whether IBM i prompting is enabled in the environment running
         * Camel.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: common
         *
         * @param guiAvailable the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder guiAvailable(String guiAvailable) {
            doSetProperty("guiAvailable", guiAvailable);
            return this;
        }
        /**
         * Whether to use keyed or non-keyed data queues.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: common
         *
         * @param keyed the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder keyed(boolean keyed) {
            doSetProperty("keyed", keyed);
            return this;
        }
        /**
         * Whether to use keyed or non-keyed data queues.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: common
         *
         * @param keyed the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder keyed(String keyed) {
            doSetProperty("keyed", keyed);
            return this;
        }
        /**
         * Search key for keyed data queues.
         *
         * The option is a: java.lang.String type.
         *
         * Group: common
         *
         * @param searchKey the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder searchKey(String searchKey) {
            doSetProperty("searchKey", searchKey);
            return this;
        }
        /**
         * Whether connections to IBM i are secured with SSL.
         *
         * The option is a: boolean type.
         *
         * Default: false
         * Group: security
         *
         * @param secured the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder secured(boolean secured) {
            doSetProperty("secured", secured);
            return this;
        }
        /**
         * Whether connections to IBM i are secured with SSL.
         *
         * The option will be converted to a boolean
         * type.
         *
         * Default: false
         * Group: security
         *
         * @param secured the value to set
         * @return the dsl builder
         */
        default Jt400EndpointBuilder secured(String secured) {
            doSetProperty("secured", secured);
            return this;
        }
    }

    /**
     * Advanced builder for endpoint for the JT400 component.
     */
    public interface AdvancedJt400EndpointBuilder
            extends
                AdvancedJt400EndpointConsumerBuilder,
                AdvancedJt400EndpointProducerBuilder {
        default Jt400EndpointBuilder basic() {
            return (Jt400EndpointBuilder) this;
        }
    }

    public interface Jt400Builders {
        /**
         * JT400 (camel-jt400)
         * Exchanges messages with an IBM i system using data queues, message
         * queues, or program call. IBM i is the replacement for AS/400 and
         * iSeries servers.
         *
         * Category: messaging
         * Since: 1.5
         * Maven coordinates: org.apache.camel:camel-jt400
         *
         * @return the dsl builder for the headers' name.
         */
        default Jt400HeaderNameBuilder jt400() {
            return Jt400HeaderNameBuilder.INSTANCE;
        }
        /**
         * JT400 (camel-jt400)
         * Exchanges messages with an IBM i system using data queues, message
         * queues, or program call. IBM i is the replacement for AS/400 and
         * iSeries servers.
         *
         * Category: messaging
         * Since: 1.5
         * Maven coordinates: org.apache.camel:camel-jt400
         *
         * Syntax:
         * jt400:userID:password@systemName/QSYS.LIB/objectPath.type
         *
         * Path parameter: userID (required)
         * Returns the ID of the IBM i user.
         *
         * Path parameter: password (required)
         * Returns the password of the IBM i user.
         *
         * Path parameter: systemName (required)
         * Returns the name of the IBM i system.
         *
         * Path parameter: objectPath (required)
         * Returns the fully qualified integrated file system path name of the
         * target object of this endpoint.
         *
         * Path parameter: type (required)
         * Whether to work with data queues or remote program call
         * There are 4 enums and the value can be one of: DTAQ, PGM, SRVPGM,
         * MSGQ
         *
         * @param path userID:password@systemName/QSYS.LIB/objectPath.type
         * @return the dsl builder
         */
        default Jt400EndpointBuilder jt400(String path) {
            return Jt400EndpointBuilderFactory.endpointBuilder("jt400", path);
        }
        /**
         * JT400 (camel-jt400)
         * Exchanges messages with an IBM i system using data queues, message
         * queues, or program call. IBM i is the replacement for AS/400 and
         * iSeries servers.
         *
         * Category: messaging
         * Since: 1.5
         * Maven coordinates: org.apache.camel:camel-jt400
         *
         * Syntax:
         * jt400:userID:password@systemName/QSYS.LIB/objectPath.type
         *
         * Path parameter: userID (required)
         * Returns the ID of the IBM i user.
         *
         * Path parameter: password (required)
         * Returns the password of the IBM i user.
         *
         * Path parameter: systemName (required)
         * Returns the name of the IBM i system.
         *
         * Path parameter: objectPath (required)
         * Returns the fully qualified integrated file system path name of the
         * target object of this endpoint.
         *
         * Path parameter: type (required)
         * Whether to work with data queues or remote program call
         * There are 4 enums and the value can be one of: DTAQ, PGM, SRVPGM,
         * MSGQ
         *
         * @param componentName to use a custom component name for the endpoint
         * instead of the default name
         * @param path userID:password@systemName/QSYS.LIB/objectPath.type
         * @return the dsl builder
         */
        default Jt400EndpointBuilder jt400(String componentName, String path) {
            return Jt400EndpointBuilderFactory.endpointBuilder(componentName, path);
        }
    }

    /**
     * The builder of headers' name for the JT400 component.
     */
    public static class Jt400HeaderNameBuilder {
        /**
         * The internal instance of the builder used to access to all the
         * methods representing the name of headers.
         */
        private static final Jt400HeaderNameBuilder INSTANCE = new Jt400HeaderNameBuilder();

        /**
         * Data queues: Returns the sender information for this data queue
         * entry, or an empty string if not available.Message queues: The job
         * identifier of the sending job.
         *
         * The option is a: {@code String} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code SENDER_INFORMATION}.
         */
        public String senderInformation() {
            return "SENDER_INFORMATION";
        }

        /**
         * The data queue key.
         *
         * The option is a: {@code String or byte[]} type.
         *
         * Group: common
         *
         * @return the name of the header {@code KEY}.
         */
        public String kEY() {
            return "KEY";
        }

        /**
         * The message received.
         *
         * The option is a: {@code com.ibm.as400.access.QueuedMessage} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code Jt400Message}.
         */
        public String jt400Message() {
            return "Jt400Message";
        }

        /**
         * The message identifier.
         *
         * The option is a: {@code String} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code Jt400MessageID}.
         */
        public String jt400MessageID() {
            return "Jt400MessageID";
        }

        /**
         * The message file name.
         *
         * The option is a: {@code String} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code Jt400MessageFile}.
         */
        public String jt400MessageFile() {
            return "Jt400MessageFile";
        }

        /**
         * The message type (corresponds to constants defined in the
         * AS400Message class).
         *
         * The option is a: {@code Integer} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code Jt400MessageType}.
         */
        public String jt400MessageType() {
            return "Jt400MessageType";
        }

        /**
         * The message severity (Valid values are between 0 and 99, or -1 if it
         * is not set).
         *
         * The option is a: {@code Integer} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code Jt400MessageSeverity}.
         */
        public String jt400MessageSeverity() {
            return "Jt400MessageSeverity";
        }

        /**
         * The default message reply, when the message is an inquiry message.
         *
         * The option is a: {@code String} type.
         *
         * Group: consumer
         *
         * @return the name of the header {@code Jt400MessageDefaultReply}.
         */
        public String jt400MessageDefaultReply() {
            return "Jt400MessageDefaultReply";
        }

        /**
         * Consumer: The key of the message that will be replied to (if the
         * sendingReply parameter is set to true). Producer: If set, and if the
         * message body is not empty, a new message will not be sent to the
         * provided message queue. Instead, a response will be sent to the
         * message identified by the given key. This is set automatically when
         * reading from the message queue if the sendingReply parameter is set
         * to true.
         *
         * The option is a: {@code byte[]} type.
         *
         * Group: common
         *
         * @return the name of the header {@code Jt400MessageReplyToKey}.
         */
        public String jt400MessageReplyToKey() {
            return "Jt400MessageReplyToKey";
        }
    }
    static Jt400EndpointBuilder endpointBuilder(
            String componentName,
            String path) {
        class Jt400EndpointBuilderImpl extends AbstractEndpointBuilder implements Jt400EndpointBuilder, AdvancedJt400EndpointBuilder {
            public Jt400EndpointBuilderImpl(String path) {
                super(componentName, path);
            }
        }
        return new Jt400EndpointBuilderImpl(path);
    }
}


text:
package com.pwawrzyniak.tlog.backend.validation;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

@Target({FIELD})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {ExpressionValidator.class})
public @interface ExpressionValid {

  String message() default "Expression is not valid.";

  Class<?>[] groups() default {};

  Class<? extends Payload>[] payload() default {};
}

redpajama_set_name: RedPajamaGithub


text:
Redis client for Golang [![Build Status](https://travis-ci.org/go-redis/redis.png?branch=master)](https://travis-ci.org/go-redis/redis)
=======================

Supports:

- Redis 2.8 commands except QUIT, MONITOR, SLOWLOG and SYNC.
- Pub/sub.
- Transactions.
- Pipelining.
- Connection pool.
- TLS connections.
- Thread safety.
- Timeouts.
- Redis Sentinel.

API docs: http://godoc.org/github.com/adjust/redis.
Examples: http://godoc.org/github.com/adjust/redis#pkg-examples.

Installation
------------

Install:

    go get github.com/adjust/redis

Look and feel
-------------

Some corner cases:

    SORT list LIMIT 0 2 ASC
    vals, err := client.Sort("list", redis.Sort{Offset: 0, Count: 2, Order: "ASC"}).Result()

    ZRANGEBYSCORE zset -inf +inf WITHSCORES LIMIT 0 2
    vals, err := client.ZRangeByScoreWithScores("zset", redis.ZRangeByScore{
        Min: "-inf",
        Max: "+inf",
        Offset: 0,
        Count: 2,
    }).Result()

    ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3 AGGREGATE SUM
    vals, err := client.ZInterStore("out", redis.ZStore{Weights: []int64{2, 3}}, "zset1", "zset2").Result()

    EVAL "return {KEYS[1],ARGV[1]}" 1 "key" "hello"
    vals, err := client.Eval("return {KEYS[1],ARGV[1]}", []string{"key"}, []string{"hello"}).Result()


text:
package org.wso2.carbon.identity.application.authentication.framework.model;

import org.wso2.carbon.CarbonConstants;
import org.wso2.carbon.identity.application.common.model.ClaimMapping;
import org.wso2.carbon.identity.application.common.model.User;
import org.wso2.carbon.user.core.util.UserCoreUtil;
import org.wso2.carbon.utils.multitenancy.MultitenantUtils;

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

/**
 * AuthenticatedUser is the class that represents the authenticated subject.
 * This class keeps information relevant to the authenticated subject.
 * This state of information includes:
 *

 *
Tenant Domain
 *
User store Domain
 *
username
 *
user attributes
 *

 */
public class AuthenticatedUser extends User {

    private static final long serialVersionUID = -5424950669928062109L;

    private String authenticatedSubjectIdentifier;
    private Map<ClaimMapping, String> userAttributes = new HashMap<ClaimMapping, String>();

    /**
     * Instantiates an AuthenticatedUser
     */
    public AuthenticatedUser() {

    }

    /**
     * Copy the given AuthenticatedUser instance
     *
     * @param authenticatedUser authenticated user instance to copy
     */
    public AuthenticatedUser(AuthenticatedUser authenticatedUser) {

        this.authenticatedSubjectIdentifier = authenticatedUser.getAuthenticatedSubjectIdentifier();
        this.tenantDomain = authenticatedUser.getTenantDomain();
        this.userName = authenticatedUser.getUserName();
        this.userStoreDomain = authenticatedUser.getUserStoreDomain();
        this.userAttributes.putAll(authenticatedUser.getUserAttributes());
    }

    /**
     * Returns the authenticated subject identifier.
     * For a locally authenticated user, subject
     * identifier is as below.
     * <userstore_domain>/<username>@<tenant_domain>.
     *
     * @return the authenticated subject identifier
     */
    public String getAuthenticatedSubjectIdentifier() {
        return authenticatedSubjectIdentifier;
    }

    /**
     * Sets the authenticated subject identifier.
     *
     * @param authenticatedSubjectIdentifier the authenticated subject identifier
     */
    public void setAuthenticatedSubjectIdentifier(String authenticatedSubjectIdentifier) {
        this.authenticatedSubjectIdentifier = authenticatedSubjectIdentifier;
    }

    /**
     * Returns the user attributes of the authenticated user as a map.
     * The map holds the respective ClaimMapping object as the key and the attribute as the value.
     *
     * @return a map of ClaimMapping to attribute value
     */
    public Map<ClaimMapping, String> getUserAttributes() {
        return userAttributes;
    }

    /**
     * Sets the user attributes of the authenticated user.
     *
     * @param userAttributes a map of ClaimMapping to attribute value
     */
    public void setUserAttributes(Map<ClaimMapping, String> userAttributes) {
        this.userAttributes = userAttributes;
    }

    /**
     * Returns an AuthenticatedUser instance populated from the given subject identifier string.
     * It is assumed that this user is authenticated from a local authenticator thus extract user
     * store domain and tenant domain from the given string.
     *
     * @param authenticatedSubjectIdentifier a string in
     *                                       <userstore_domain>/<username>@<tenant_domain> format
     * @return populated AuthenticatedUser instance
     */
    public static AuthenticatedUser createLocalAuthenticatedUserFromSubjectIdentifier(
            String authenticatedSubjectIdentifier) {

        if (authenticatedSubjectIdentifier == null || authenticatedSubjectIdentifier.trim().isEmpty()) {
            throw new IllegalArgumentException(
                    "Failed to create Local Authenticated User from the given subject identifier." +
                    " Invalid argument. authenticatedSubjectIdentifier : " + authenticatedSubjectIdentifier);
        }

        AuthenticatedUser authenticatedUser = new AuthenticatedUser();

        if (authenticatedSubjectIdentifier.indexOf(CarbonConstants.DOMAIN_SEPARATOR) > 0) {
            if (UserCoreUtil.getDomainFromThreadLocal() != null && !UserCoreUtil.getDomainFromThreadLocal().isEmpty()) {
                String[] subjectIdentifierSplits =
                        authenticatedSubjectIdentifier.split(CarbonConstants.DOMAIN_SEPARATOR, 2);
                authenticatedUser.setUserStoreDomain(subjectIdentifierSplits[0]);
                authenticatedUser.setUserName(MultitenantUtils.getTenantAwareUsername(subjectIdentifierSplits[1]));
            } else {
                authenticatedUser.setUserName(MultitenantUtils.getTenantAwareUsername(authenticatedSubjectIdentifier));
            }
        } else {
            authenticatedUser.setUserName(MultitenantUtils.getTenantAwareUsername(authenticatedSubjectIdentifier));
        }

        authenticatedUser.setTenantDomain(MultitenantUtils.getTenantDomain(authenticatedSubjectIdentifier));
        authenticatedUser.setAuthenticatedSubjectIdentifier(authenticatedSubjectIdentifier);

        return authenticatedUser;
    }

    /**
     * Returns an AuthenticatedUser instance populated from the given subject identifier string.
     * It is assumed that this user is authenticated from a federated authenticator.
     *
     * @param authenticatedSubjectIdentifier a string that represents authenticated subject
     *                                       identifier
     * @return populated AuthenticatedUser instance
     */
    public static AuthenticatedUser createFederateAuthenticatedUserFromSubjectIdentifier(
            String authenticatedSubjectIdentifier) {

        if (authenticatedSubjectIdentifier == null || authenticatedSubjectIdentifier.trim().isEmpty()) {
            throw new IllegalArgumentException(
                    "Failed to create Federated Authenticated User from the given subject " +
                    "identifier. Invalid argument. authenticatedSubjectIdentifier : " + authenticatedSubjectIdentifier);
        }

        AuthenticatedUser authenticatedUser = new AuthenticatedUser();
        authenticatedUser.setAuthenticatedSubjectIdentifier(authenticatedSubjectIdentifier);

        return authenticatedUser;
    }
}


text:
/* eslint-disable */

'use strict';

/*::
import type { ConcreteRequest, Query } from 'relay-runtime';
type withProvidedVariablesTest2Fragment$fragmentType = any;
export type withProvidedVariablesTest2Query$variables = {|
  includeFriendsCount: boolean,
|};
export type withProvidedVariablesTest2Query$data = {|
  +node: ?{|
    +$fragmentSpreads: withProvidedVariablesTest2Fragment$fragmentType,
  |},
|};
export type withProvidedVariablesTest2Query = {|
  variables: withProvidedVariablesTest2Query$variables,
  response: withProvidedVariablesTest2Query$data,
|};
type ProvidedVariablesType = {|
  +__relay_internal__pv__provideNumberOfFriends: {|
    +get: () => number,
  |},
|};
*/

var providedVariablesDefinition/*: ProvidedVariablesType*/ = {
  "__relay_internal__pv__provideNumberOfFriends": require('./../provideNumberOfFriends')
};

var node/*: ConcreteRequest*/ = (function(){
var v0 = {
  "defaultValue": null,
  "kind": "LocalArgument",
  "name": "includeFriendsCount"
},
v1 = [
  {
    "kind": "Literal",
    "name": "id",
    "value": 4
  }
];
return {
  "fragment": {
    "argumentDefinitions": [
      (v0/*: any*/)
    ],
    "kind": "Fragment",
    "metadata": null,
    "name": "withProvidedVariablesTest2Query",
    "selections": [
      {
        "alias": null,
        "args": (v1/*: any*/),
        "concreteType": null,
        "kind": "LinkedField",
        "name": "node",
        "plural": false,
        "selections": [
          {
            "args": [
              {
                "kind": "Variable",
                "name": "includeFriendsCount_",
                "variableName": "includeFriendsCount"
              }
            ],
            "kind": "FragmentSpread",
            "name": "withProvidedVariablesTest2Fragment"
          }
        ],
        "storageKey": "node(id:4)"
      }
    ],
    "type": "Query",
    "abstractKey": null
  },
  "kind": "Request",
  "operation": {
    "argumentDefinitions": [
      (v0/*: any*/),
      {
        "defaultValue": null,
        "kind": "LocalArgument",
        "name": "__relay_internal__pv__provideNumberOfFriends"
      }
    ],
    "kind": "Operation",
    "name": "withProvidedVariablesTest2Query",
    "selections": [
      {
        "alias": null,
        "args": (v1/*: any*/),
        "concreteType": null,
        "kind": "LinkedField",
        "name": "node",
        "plural": false,
        "selections": [
          {
            "alias": null,
            "args": null,
            "kind": "ScalarField",
            "name": "__typename",
            "storageKey": null
          },
          {
            "kind": "InlineFragment",
            "selections": [
              {
                "alias": null,
                "args": [
                  {
                    "kind": "Variable",
                    "name": "first",
                    "variableName": "__relay_internal__pv__provideNumberOfFriends"
                  }
                ],
                "concreteType": "FriendsConnection",
                "kind": "LinkedField",
                "name": "friends",
                "plural": false,
                "selections": [
                  {
                    "condition": "includeFriendsCount",
                    "kind": "Condition",
                    "passingValue": true,
                    "selections": [
                      {
                        "alias": null,
                        "args": null,
                        "kind": "ScalarField",
                        "name": "count",
                        "storageKey": null
                      }
                    ]
                  }
                ],
                "storageKey": null
              }
            ],
            "type": "User",
            "abstractKey": null
          },
          {
            "alias": null,
            "args": null,
            "kind": "ScalarField",
            "name": "id",
            "storageKey": null
          }
        ],
        "storageKey": "node(id:4)"
      }
    ]
  },
  "params": {
    "cacheID": "9bb6ef43322148377bca28bc8c78d319",
    "id": null,
    "metadata": {},
    "name": "withProvidedVariablesTest2Query",
    "operationKind": "query",
    "text": "query withProvidedVariablesTest2Query(\n  $includeFriendsCount: Boolean!\n  $__relay_internal__pv__provideNumberOfFriends: Int!\n) {\n  node(id: 4) {\n    __typename\n    ...withProvidedVariablesTest2Fragment_47ZY3u\n    id\n  }\n}\n\nfragment withProvidedVariablesTest2Fragment_47ZY3u on User {\n  friends(first: $__relay_internal__pv__provideNumberOfFriends) {\n    count @include(if: $includeFriendsCount)\n  }\n}\n",
    "providedVariables": providedVariablesDefinition
  }
};
})();

if (__DEV__) {
  (node/*: any*/).hash = "e9e93574d0f69b01f4abac7b2738cece";
}

module.exports = ((node/*: any*/)/*: Query<
  withProvidedVariablesTest2Query$variables,
  withProvidedVariablesTest2Query$data,
>*/);


text:
package edu.nju.hostelworld.model;

import javax.persistence.*;

/**
 * Created by Hanz on 2017/3/20.
 *
 * @author Hanz
 */
@Entity
@Table(name = "manager", schema = "hostelworld", catalog = "")
public class ManagerEntity {
    private String id;
    private String password;
    private String name;

    @Id
    @Column(name = "id", nullable = false, length = 7)
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "password", nullable = false, length = 255)
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Basic
    @Column(name = "name", nullable = false, length = 255)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        ManagerEntity that = (ManagerEntity) o;

        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (password != null ? !password.equals(that.password) : that.password != null) return false;
        if (name != null ? !name.equals(that.name) : that.name != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (password != null ? password.hashCode() : 0);
        result = 31 * result + (name != null ? name.hashCode() : 0);
        return result;
    }
}


text:
Meteor.publishComposite('countries', function(doc, sort) {
    doc.appId = App.id;
    console.log("subscribing some Countries with it's relation in App Id = " + App.id);
    return{
        find: function() {
            return Countries.find(doc, sort);
        },
        children: [
            /* return all related Users */
            {
                find: function(collection) {
                    return Meteor.users.find({
                        $or: [
                            {_id: collection.createdUserId},
                            {_id: collection.updatedUserId},
                        ]
                    });
                }
            },

        ],
    }
});

Meteor.methods({
    "Countries.insert": function(doc) {
        var _id = Countries.insert(doc);
        return {
            _id: _id,
        }
    },
});

/* observing collection */
/* uncomment to use
 var query = Countries.find({});
 var handle = query.observe({
 removed: function(model) {
 //removing related image, when post removed
 Images.remove(model.imageId);
 }
 });
 */


text:
set -e
# Check unset variables
set -u
# Print commands
set -x

echo 'Running bookinfo test with rbac, auth Tests'
./prow/e2e-suite.sh --single_test e2e_bookinfo_envoyv2_v1alpha3 "$@"


text:
@extends('_base.dashboard')

@section('title')
	Manage Schedules
@stop

@section('sub-content')

 Manage Schedules

			Create New Appointment

	@if ( Session::has('administrator.schedules.create.success') )

			{{ Session::get('administrator.schedules.create.success') }}

	@endif

	@if ( count($schedules) )

				 #
				 Patient's Full Name
				 Date Appointed
				 Date Created

			@foreach($schedules as $schedule)

					isDone() ? 'success' : '' }}"> {{ $schedule->id }}
					isDone() ? 'success' : '' }}">
						{{ $schedule->user->username }}
						({{ $schedule->user->profile->full_name }})

					isDone() ? 'success' : '' }}"> {{ $schedule->appointed_at->diffForHumans() }}
					isDone() ? 'success' : '' }}"> {{ $schedule->created_at->diffForHumans() }}

			@endforeach

	{{ $schedules->links() }}
	@endif
@stop


text:
volatile uint16_t *video_memory;
static unsigned lines, cols;

uint8_t attributeByte = (0 << 4) | (15  & 0x0F);
uint8_t defaultAttribute = (0 << 4) | (15  & 0x0F);
uint8_t tm_cfore = 0xF, tm_cback = 0x0;

void textmode_changedest(uint16_t *newdest){
	video_memory=newdest;
}

void textmode_init(uint16_t *buffer, unsigned alines, unsigned acols){
	video_memory=buffer;
	lines=alines, cols=acols;
}

///Sets the Textmode cursor posititon
void textmode_setcursor(int x,int y)
{
#ifdef CONSOLE_ONLY
	uint16_t location = y * cols + x;
	outb(0x3D4, 14);
	outb(0x3D5, location >> 8);
	outb(0x3D4, 15);
	outb(0x3D5, location);
#endif
}
///Sets the attribute byte
void textmode_setbackcolor(uint8_t back)
{
	attributeByte=(back << 4) | (attributeByte&(1<<4));
}

void textmode_setforecolor(uint8_t fore){
	attributeByte=(attributeByte&(-1<<4)) | (fore&0x0F);
}

///Resets the attribute byte
void textmode_resetcolor()
{
	attributeByte = defaultAttribute;
}
///Writes data to the screen
void textmode_write(int x,int y,uint8_t data)
{
	uint16_t attribute = attributeByte << 8;
	volatile uint16_t *write_to;
	write_to = video_memory + (y * cols) + x;
	*write_to = data | attribute;
}
///Writes data with a custom attribute byte
void textmode_write_color(int x,int y,uint8_t data, uint8_t attr)
{
	uint16_t attribute = attr << 8;
	volatile uint16_t *write_to;
	write_to = video_memory + ((y * cols) + x);
	*write_to = data | attribute;
}
///Clears the screen
void textmode_clear()
{
	memset((void *)video_memory, 0x00, cols * lines * sizeof(u16));
}
///FIXME: Get this to work.
uint8_t textmode_read(int x,int y)
{
	return 0 * (x + y);
}
///Scrolls the screen.
void textmode_scroll(int from,int to) //0 and lines-1
{
	uint16_t blank = 0x20  | (attributeByte << 8);
	unsigned i;
	for (i = from*cols; i < to*cols; i++)
		video_memory[i] = video_memory[i+cols];

	for (i = to*cols; i < (to+1)*cols; i++)
		video_memory[i] = blank;
}