text:
package com.amazonaws.services.sagemaker.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 *

 * The inference configuration parameter for the model container.
 *

 *
 * @see AWS
 *      API Documentation
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class ClarifyInferenceConfig implements Serializable, Cloneable, StructuredPojo {

    /**
     *

     * Provides the JMESPath expression to extract the features from a model container input in JSON Lines format. For
     * example, if FeaturesAttribute is the JMESPath expression 'myfeatures', it extracts a
     * list of features [1,2,3] from request data '{"myfeatures":[1,2,3]}'.
     *

     */
    private String featuresAttribute;
    /**
     *

     * A template string used to format a JSON record into an acceptable model container input. For example, a
     * ContentTemplate string '{"myfeatures":$features}' will format a list of features
     * [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only when the model
     * container input is in JSON Lines format.
     *

     */
    private String contentTemplate;
    /**
     *

     * The maximum number of records in a request that the model container can process when querying the model container
     * for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a single
     * line in CSV data. If MaxRecordCount is 1, the model container expects one record per
     * request. A value of 2 or greater means that the model expects batch requests, which can reduce overhead and speed
     * up the inferencing process. If this parameter is not provided, the explainer will tune the record count per
     * request according to the model container's capacity at runtime.
     *

     */
    private Integer maxRecordCount;
    /**
     *

     * The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     * 6 MB.
     *

     */
    private Integer maxPayloadInMB;
    /**
     *

     * A zero-based index used to extract a probability value (score) or list from model container output in CSV format.
     * If this value is not provided, the entire model container output will be treated as a probability value (score)
     * or list.
     *

     *

     * Example for a single class model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '1,0.6', set ProbabilityIndex to 1 to
     * select the probability value 0.6.
     *

     *

     * Example for a multiclass model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set
     * ProbabilityIndex to 1 to select the probability values [0.1,0.6,0.3].
     *

     */
    private Integer probabilityIndex;
    /**
     *

     * A zero-based index used to extract a label header or list of label headers from model container output in CSV
     * format.
     *

     *

     * Example for a multiclass model: If the model container output consists of label headers followed by
     * probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set LabelIndex to
     * 0 to select the label headers ['cat','dog','fish'].
     *

     */
    private Integer labelIndex;
    /**
     *

     * A JMESPath expression used to extract the probability (or score) from the model container output if the model
     * container is in JSON Lines format.
     *

     *

     * Example: If the model container output of a single request is
     * '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     * 'probability'.
     *

     */
    private String probabilityAttribute;
    /**
     *

     * A JMESPath expression used to locate the list of label headers in the model container output.
     *

     *

     * Example: If the model container output of a batch request is
     * '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set LabelAttribute
     * to 'labels' to extract the list of label headers ["cat","dog","fish"]
     *

     */
    private String labelAttribute;
    /**
     *

     * For multiclass classification problems, the label headers are the names of the classes. Otherwise, the label
     * header is the name of the predicted label. These are used to help readability for the output of the
     * InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If there are
     * no label headers in the model container output, provide them manually using this parameter.
     *

     */
    private java.util.List<String> labelHeaders;
    /**
     *

     * The names of the features. If provided, these are included in the endpoint response payload to help readability
     * of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     *

     */
    private java.util.List<String> featureHeaders;
    /**
     *

     * A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     * FeatureTypes must have at least one 'text' string (for example, ['text']).
     * If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data.
     * The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     *

     */
    private java.util.List<String> featureTypes;

    /**
     *

     * Provides the JMESPath expression to extract the features from a model container input in JSON Lines format. For
     * example, if FeaturesAttribute is the JMESPath expression 'myfeatures', it extracts a
     * list of features [1,2,3] from request data '{"myfeatures":[1,2,3]}'.
     *

     *
     * @param featuresAttribute
     *        Provides the JMESPath expression to extract the features from a model container input in JSON Lines
     *        format. For example, if FeaturesAttribute is the JMESPath expression
     *        'myfeatures', it extracts a list of features [1,2,3] from request data
     *        '{"myfeatures":[1,2,3]}'.
     */

    public void setFeaturesAttribute(String featuresAttribute) {
        this.featuresAttribute = featuresAttribute;
    }

    /**
     *

     * Provides the JMESPath expression to extract the features from a model container input in JSON Lines format. For
     * example, if FeaturesAttribute is the JMESPath expression 'myfeatures', it extracts a
     * list of features [1,2,3] from request data '{"myfeatures":[1,2,3]}'.
     *

     *
     * @return Provides the JMESPath expression to extract the features from a model container input in JSON Lines
     *         format. For example, if FeaturesAttribute is the JMESPath expression
     *         'myfeatures', it extracts a list of features [1,2,3] from request data
     *         '{"myfeatures":[1,2,3]}'.
     */

    public String getFeaturesAttribute() {
        return this.featuresAttribute;
    }

    /**
     *

     * Provides the JMESPath expression to extract the features from a model container input in JSON Lines format. For
     * example, if FeaturesAttribute is the JMESPath expression 'myfeatures', it extracts a
     * list of features [1,2,3] from request data '{"myfeatures":[1,2,3]}'.
     *

     *
     * @param featuresAttribute
     *        Provides the JMESPath expression to extract the features from a model container input in JSON Lines
     *        format. For example, if FeaturesAttribute is the JMESPath expression
     *        'myfeatures', it extracts a list of features [1,2,3] from request data
     *        '{"myfeatures":[1,2,3]}'.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withFeaturesAttribute(String featuresAttribute) {
        setFeaturesAttribute(featuresAttribute);
        return this;
    }

    /**
     *

     * A template string used to format a JSON record into an acceptable model container input. For example, a
     * ContentTemplate string '{"myfeatures":$features}' will format a list of features
     * [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only when the model
     * container input is in JSON Lines format.
     *

     *
     * @param contentTemplate
     *        A template string used to format a JSON record into an acceptable model container input. For example, a
     *        ContentTemplate string '{"myfeatures":$features}' will format a list of features
     *        [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only when the
     *        model container input is in JSON Lines format.
     */

    public void setContentTemplate(String contentTemplate) {
        this.contentTemplate = contentTemplate;
    }

    /**
     *

     * A template string used to format a JSON record into an acceptable model container input. For example, a
     * ContentTemplate string '{"myfeatures":$features}' will format a list of features
     * [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only when the model
     * container input is in JSON Lines format.
     *

     *
     * @return A template string used to format a JSON record into an acceptable model container input. For example, a
     *         ContentTemplate string '{"myfeatures":$features}' will format a list of
     *         features [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only
     *         when the model container input is in JSON Lines format.
     */

    public String getContentTemplate() {
        return this.contentTemplate;
    }

    /**
     *

     * A template string used to format a JSON record into an acceptable model container input. For example, a
     * ContentTemplate string '{"myfeatures":$features}' will format a list of features
     * [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only when the model
     * container input is in JSON Lines format.
     *

     *
     * @param contentTemplate
     *        A template string used to format a JSON record into an acceptable model container input. For example, a
     *        ContentTemplate string '{"myfeatures":$features}' will format a list of features
     *        [1,2,3] into the record string '{"myfeatures":[1,2,3]}'. Required only when the
     *        model container input is in JSON Lines format.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withContentTemplate(String contentTemplate) {
        setContentTemplate(contentTemplate);
        return this;
    }

    /**
     *

     * The maximum number of records in a request that the model container can process when querying the model container
     * for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a single
     * line in CSV data. If MaxRecordCount is 1, the model container expects one record per
     * request. A value of 2 or greater means that the model expects batch requests, which can reduce overhead and speed
     * up the inferencing process. If this parameter is not provided, the explainer will tune the record count per
     * request according to the model container's capacity at runtime.
     *

     *
     * @param maxRecordCount
     *        The maximum number of records in a request that the model container can process when querying the model
     *        container for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a
     *        single line in CSV data. If MaxRecordCount is 1, the model container expects one
     *        record per request. A value of 2 or greater means that the model expects batch requests, which can reduce
     *        overhead and speed up the inferencing process. If this parameter is not provided, the explainer will tune
     *        the record count per request according to the model container's capacity at runtime.
     */

    public void setMaxRecordCount(Integer maxRecordCount) {
        this.maxRecordCount = maxRecordCount;
    }

    /**
     *

     * The maximum number of records in a request that the model container can process when querying the model container
     * for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a single
     * line in CSV data. If MaxRecordCount is 1, the model container expects one record per
     * request. A value of 2 or greater means that the model expects batch requests, which can reduce overhead and speed
     * up the inferencing process. If this parameter is not provided, the explainer will tune the record count per
     * request according to the model container's capacity at runtime.
     *

     *
     * @return The maximum number of records in a request that the model container can process when querying the model
     *         container for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a
     *         single line in CSV data. If MaxRecordCount is 1, the model container expects
     *         one record per request. A value of 2 or greater means that the model expects batch requests, which can
     *         reduce overhead and speed up the inferencing process. If this parameter is not provided, the explainer
     *         will tune the record count per request according to the model container's capacity at runtime.
     */

    public Integer getMaxRecordCount() {
        return this.maxRecordCount;
    }

    /**
     *

     * The maximum number of records in a request that the model container can process when querying the model container
     * for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a single
     * line in CSV data. If MaxRecordCount is 1, the model container expects one record per
     * request. A value of 2 or greater means that the model expects batch requests, which can reduce overhead and speed
     * up the inferencing process. If this parameter is not provided, the explainer will tune the record count per
     * request according to the model container's capacity at runtime.
     *

     *
     * @param maxRecordCount
     *        The maximum number of records in a request that the model container can process when querying the model
     *        container for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a
     *        single line in CSV data. If MaxRecordCount is 1, the model container expects one
     *        record per request. A value of 2 or greater means that the model expects batch requests, which can reduce
     *        overhead and speed up the inferencing process. If this parameter is not provided, the explainer will tune
     *        the record count per request according to the model container's capacity at runtime.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withMaxRecordCount(Integer maxRecordCount) {
        setMaxRecordCount(maxRecordCount);
        return this;
    }

    /**
     *

     * The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     * 6 MB.
     *

     *
     * @param maxPayloadInMB
     *        The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     *        6 MB.
     */

    public void setMaxPayloadInMB(Integer maxPayloadInMB) {
        this.maxPayloadInMB = maxPayloadInMB;
    }

    /**
     *

     * The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     * 6 MB.
     *

     *
     * @return The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     *         6 MB.
     */

    public Integer getMaxPayloadInMB() {
        return this.maxPayloadInMB;
    }

    /**
     *

     * The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     * 6 MB.
     *

     *
     * @param maxPayloadInMB
     *        The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to
     *        6 MB.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withMaxPayloadInMB(Integer maxPayloadInMB) {
        setMaxPayloadInMB(maxPayloadInMB);
        return this;
    }

    /**
     *

     * A zero-based index used to extract a probability value (score) or list from model container output in CSV format.
     * If this value is not provided, the entire model container output will be treated as a probability value (score)
     * or list.
     *

     *

     * Example for a single class model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '1,0.6', set ProbabilityIndex to 1 to
     * select the probability value 0.6.
     *

     *

     * Example for a multiclass model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set
     * ProbabilityIndex to 1 to select the probability values [0.1,0.6,0.3].
     *

     *
     * @param probabilityIndex
     *        A zero-based index used to extract a probability value (score) or list from model container output in CSV
     *        format. If this value is not provided, the entire model container output will be treated as a probability
     *        value (score) or list.

     *

     *        Example for a single class model: If the model container output consists of a string-formatted
     *        prediction label followed by its probability: '1,0.6', set ProbabilityIndex to
     *        1 to select the probability value 0.6.
     *

     *

     *        Example for a multiclass model: If the model container output consists of a string-formatted
     *        prediction label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"',
     *        set ProbabilityIndex to 1 to select the probability values
     *        [0.1,0.6,0.3].
     */

    public void setProbabilityIndex(Integer probabilityIndex) {
        this.probabilityIndex = probabilityIndex;
    }

    /**
     *

     * A zero-based index used to extract a probability value (score) or list from model container output in CSV format.
     * If this value is not provided, the entire model container output will be treated as a probability value (score)
     * or list.
     *

     *

     * Example for a single class model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '1,0.6', set ProbabilityIndex to 1 to
     * select the probability value 0.6.
     *

     *

     * Example for a multiclass model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set
     * ProbabilityIndex to 1 to select the probability values [0.1,0.6,0.3].
     *

     *
     * @return A zero-based index used to extract a probability value (score) or list from model container output in CSV
     *         format. If this value is not provided, the entire model container output will be treated as a probability
     *         value (score) or list.

     *

     *         Example for a single class model: If the model container output consists of a string-formatted
     *         prediction label followed by its probability: '1,0.6', set ProbabilityIndex to
     *         1 to select the probability value 0.6.
     *

     *

     *         Example for a multiclass model: If the model container output consists of a string-formatted
     *         prediction label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"'
     *         , set ProbabilityIndex to 1 to select the probability values
     *         [0.1,0.6,0.3].
     */

    public Integer getProbabilityIndex() {
        return this.probabilityIndex;
    }

    /**
     *

     * A zero-based index used to extract a probability value (score) or list from model container output in CSV format.
     * If this value is not provided, the entire model container output will be treated as a probability value (score)
     * or list.
     *

     *

     * Example for a single class model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '1,0.6', set ProbabilityIndex to 1 to
     * select the probability value 0.6.
     *

     *

     * Example for a multiclass model: If the model container output consists of a string-formatted prediction
     * label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set
     * ProbabilityIndex to 1 to select the probability values [0.1,0.6,0.3].
     *

     *
     * @param probabilityIndex
     *        A zero-based index used to extract a probability value (score) or list from model container output in CSV
     *        format. If this value is not provided, the entire model container output will be treated as a probability
     *        value (score) or list.

     *

     *        Example for a single class model: If the model container output consists of a string-formatted
     *        prediction label followed by its probability: '1,0.6', set ProbabilityIndex to
     *        1 to select the probability value 0.6.
     *

     *

     *        Example for a multiclass model: If the model container output consists of a string-formatted
     *        prediction label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"',
     *        set ProbabilityIndex to 1 to select the probability values
     *        [0.1,0.6,0.3].
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withProbabilityIndex(Integer probabilityIndex) {
        setProbabilityIndex(probabilityIndex);
        return this;
    }

    /**
     *

     * A zero-based index used to extract a label header or list of label headers from model container output in CSV
     * format.
     *

     *

     * Example for a multiclass model: If the model container output consists of label headers followed by
     * probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set LabelIndex to
     * 0 to select the label headers ['cat','dog','fish'].
     *

     *
     * @param labelIndex
     *        A zero-based index used to extract a label header or list of label headers from model container output in
     *        CSV format.

     *

     *        Example for a multiclass model: If the model container output consists of label headers followed by
     *        probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set LabelIndex to
     *        0 to select the label headers ['cat','dog','fish'].
     */

    public void setLabelIndex(Integer labelIndex) {
        this.labelIndex = labelIndex;
    }

    /**
     *

     * A zero-based index used to extract a label header or list of label headers from model container output in CSV
     * format.
     *

     *

     * Example for a multiclass model: If the model container output consists of label headers followed by
     * probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set LabelIndex to
     * 0 to select the label headers ['cat','dog','fish'].
     *

     *
     * @return A zero-based index used to extract a label header or list of label headers from model container output in
     *         CSV format.

     *

     *         Example for a multiclass model: If the model container output consists of label headers followed
     *         by probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set
     *         LabelIndex to 0 to select the label headers ['cat','dog','fish'].
     */

    public Integer getLabelIndex() {
        return this.labelIndex;
    }

    /**
     *

     * A zero-based index used to extract a label header or list of label headers from model container output in CSV
     * format.
     *

     *

     * Example for a multiclass model: If the model container output consists of label headers followed by
     * probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set LabelIndex to
     * 0 to select the label headers ['cat','dog','fish'].
     *

     *
     * @param labelIndex
     *        A zero-based index used to extract a label header or list of label headers from model container output in
     *        CSV format.

     *

     *        Example for a multiclass model: If the model container output consists of label headers followed by
     *        probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"', set LabelIndex to
     *        0 to select the label headers ['cat','dog','fish'].
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withLabelIndex(Integer labelIndex) {
        setLabelIndex(labelIndex);
        return this;
    }

    /**
     *

     * A JMESPath expression used to extract the probability (or score) from the model container output if the model
     * container is in JSON Lines format.
     *

     *

     * Example: If the model container output of a single request is
     * '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     * 'probability'.
     *

     *
     * @param probabilityAttribute
     *        A JMESPath expression used to extract the probability (or score) from the model container output if the
     *        model container is in JSON Lines format.

     *

     *        Example: If the model container output of a single request is
     *        '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     *        'probability'.
     */

    public void setProbabilityAttribute(String probabilityAttribute) {
        this.probabilityAttribute = probabilityAttribute;
    }

    /**
     *

     * A JMESPath expression used to extract the probability (or score) from the model container output if the model
     * container is in JSON Lines format.
     *

     *

     * Example: If the model container output of a single request is
     * '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     * 'probability'.
     *

     *
     * @return A JMESPath expression used to extract the probability (or score) from the model container output if the
     *         model container is in JSON Lines format.

     *

     *         Example: If the model container output of a single request is
     *         '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     *         'probability'.
     */

    public String getProbabilityAttribute() {
        return this.probabilityAttribute;
    }

    /**
     *

     * A JMESPath expression used to extract the probability (or score) from the model container output if the model
     * container is in JSON Lines format.
     *

     *

     * Example: If the model container output of a single request is
     * '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     * 'probability'.
     *

     *
     * @param probabilityAttribute
     *        A JMESPath expression used to extract the probability (or score) from the model container output if the
     *        model container is in JSON Lines format.

     *

     *        Example: If the model container output of a single request is
     *        '{"predicted_label":1,"probability":0.6}', then set ProbabilityAttribute to
     *        'probability'.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withProbabilityAttribute(String probabilityAttribute) {
        setProbabilityAttribute(probabilityAttribute);
        return this;
    }

    /**
     *

     * A JMESPath expression used to locate the list of label headers in the model container output.
     *

     *

     * Example: If the model container output of a batch request is
     * '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set LabelAttribute
     * to 'labels' to extract the list of label headers ["cat","dog","fish"]
     *

     *
     * @param labelAttribute
     *        A JMESPath expression used to locate the list of label headers in the model container output.

     *

     *        Example: If the model container output of a batch request is
     *        '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set
     *        LabelAttribute to 'labels' to extract the list of label headers
     *        ["cat","dog","fish"]
     */

    public void setLabelAttribute(String labelAttribute) {
        this.labelAttribute = labelAttribute;
    }

    /**
     *

     * A JMESPath expression used to locate the list of label headers in the model container output.
     *

     *

     * Example: If the model container output of a batch request is
     * '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set LabelAttribute
     * to 'labels' to extract the list of label headers ["cat","dog","fish"]
     *

     *
     * @return A JMESPath expression used to locate the list of label headers in the model container output.

     *

     *         Example: If the model container output of a batch request is
     *         '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set
     *         LabelAttribute to 'labels' to extract the list of label headers
     *         ["cat","dog","fish"]
     */

    public String getLabelAttribute() {
        return this.labelAttribute;
    }

    /**
     *

     * A JMESPath expression used to locate the list of label headers in the model container output.
     *

     *

     * Example: If the model container output of a batch request is
     * '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set LabelAttribute
     * to 'labels' to extract the list of label headers ["cat","dog","fish"]
     *

     *
     * @param labelAttribute
     *        A JMESPath expression used to locate the list of label headers in the model container output.

     *

     *        Example: If the model container output of a batch request is
     *        '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}', then set
     *        LabelAttribute to 'labels' to extract the list of label headers
     *        ["cat","dog","fish"]
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withLabelAttribute(String labelAttribute) {
        setLabelAttribute(labelAttribute);
        return this;
    }

    /**
     *

     * For multiclass classification problems, the label headers are the names of the classes. Otherwise, the label
     * header is the name of the predicted label. These are used to help readability for the output of the
     * InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If there are
     * no label headers in the model container output, provide them manually using this parameter.
     *

     *
     * @return For multiclass classification problems, the label headers are the names of the classes. Otherwise, the
     *         label header is the name of the predicted label. These are used to help readability for the output of the
     *         InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If
     *         there are no label headers in the model container output, provide them manually using this parameter.
     */

    public java.util.List<String> getLabelHeaders() {
        return labelHeaders;
    }

    /**
     *

     * For multiclass classification problems, the label headers are the names of the classes. Otherwise, the label
     * header is the name of the predicted label. These are used to help readability for the output of the
     * InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If there are
     * no label headers in the model container output, provide them manually using this parameter.
     *

     *
     * @param labelHeaders
     *        For multiclass classification problems, the label headers are the names of the classes. Otherwise, the
     *        label header is the name of the predicted label. These are used to help readability for the output of the
     *        InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If
     *        there are no label headers in the model container output, provide them manually using this parameter.
     */

    public void setLabelHeaders(java.util.Collection<String> labelHeaders) {
        if (labelHeaders == null) {
            this.labelHeaders = null;
            return;
        }

        this.labelHeaders = new java.util.ArrayList<String>(labelHeaders);
    }

    /**
     *

     * For multiclass classification problems, the label headers are the names of the classes. Otherwise, the label
     * header is the name of the predicted label. These are used to help readability for the output of the
     * InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If there are
     * no label headers in the model container output, provide them manually using this parameter.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setLabelHeaders(java.util.Collection)} or {@link #withLabelHeaders(java.util.Collection)} if you want to
     * override the existing values.
     *

     *
     * @param labelHeaders
     *        For multiclass classification problems, the label headers are the names of the classes. Otherwise, the
     *        label header is the name of the predicted label. These are used to help readability for the output of the
     *        InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If
     *        there are no label headers in the model container output, provide them manually using this parameter.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withLabelHeaders(String... labelHeaders) {
        if (this.labelHeaders == null) {
            setLabelHeaders(new java.util.ArrayList<String>(labelHeaders.length));
        }
        for (String ele : labelHeaders) {
            this.labelHeaders.add(ele);
        }
        return this;
    }

    /**
     *

     * For multiclass classification problems, the label headers are the names of the classes. Otherwise, the label
     * header is the name of the predicted label. These are used to help readability for the output of the
     * InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If there are
     * no label headers in the model container output, provide them manually using this parameter.
     *

     *
     * @param labelHeaders
     *        For multiclass classification problems, the label headers are the names of the classes. Otherwise, the
     *        label header is the name of the predicted label. These are used to help readability for the output of the
     *        InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If
     *        there are no label headers in the model container output, provide them manually using this parameter.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withLabelHeaders(java.util.Collection<String> labelHeaders) {
        setLabelHeaders(labelHeaders);
        return this;
    }

    /**
     *

     * The names of the features. If provided, these are included in the endpoint response payload to help readability
     * of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @return The names of the features. If provided, these are included in the endpoint response payload to help
     *         readability of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     */

    public java.util.List<String> getFeatureHeaders() {
        return featureHeaders;
    }

    /**
     *

     * The names of the features. If provided, these are included in the endpoint response payload to help readability
     * of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @param featureHeaders
     *        The names of the features. If provided, these are included in the endpoint response payload to help
     *        readability of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     */

    public void setFeatureHeaders(java.util.Collection<String> featureHeaders) {
        if (featureHeaders == null) {
            this.featureHeaders = null;
            return;
        }

        this.featureHeaders = new java.util.ArrayList<String>(featureHeaders);
    }

    /**
     *

     * The names of the features. If provided, these are included in the endpoint response payload to help readability
     * of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setFeatureHeaders(java.util.Collection)} or {@link #withFeatureHeaders(java.util.Collection)} if you want
     * to override the existing values.
     *

     *
     * @param featureHeaders
     *        The names of the features. If provided, these are included in the endpoint response payload to help
     *        readability of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withFeatureHeaders(String... featureHeaders) {
        if (this.featureHeaders == null) {
            setFeatureHeaders(new java.util.ArrayList<String>(featureHeaders.length));
        }
        for (String ele : featureHeaders) {
            this.featureHeaders.add(ele);
        }
        return this;
    }

    /**
     *

     * The names of the features. If provided, these are included in the endpoint response payload to help readability
     * of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @param featureHeaders
     *        The names of the features. If provided, these are included in the endpoint response payload to help
     *        readability of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public ClarifyInferenceConfig withFeatureHeaders(java.util.Collection<String> featureHeaders) {
        setFeatureHeaders(featureHeaders);
        return this;
    }

    /**
     *

     * A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     * FeatureTypes must have at least one 'text' string (for example, ['text']).
     * If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data.
     * The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @return A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     *         FeatureTypes must have at least one 'text' string (for example,
     *         ['text']). If FeatureTypes is not provided, the explainer infers the feature
     *         types based on the baseline data. The feature types are included in the endpoint response payload. For
     *         additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     * @see ClarifyFeatureType
     */

    public java.util.List<String> getFeatureTypes() {
        return featureTypes;
    }

    /**
     *

     * A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     * FeatureTypes must have at least one 'text' string (for example, ['text']).
     * If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data.
     * The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @param featureTypes
     *        A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     *        FeatureTypes must have at least one 'text' string (for example,
     *        ['text']). If FeatureTypes is not provided, the explainer infers the feature
     *        types based on the baseline data. The feature types are included in the endpoint response payload. For
     *        additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     * @see ClarifyFeatureType
     */

    public void setFeatureTypes(java.util.Collection<String> featureTypes) {
        if (featureTypes == null) {
            this.featureTypes = null;
            return;
        }

        this.featureTypes = new java.util.ArrayList<String>(featureTypes);
    }

    /**
     *

     * A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     * FeatureTypes must have at least one 'text' string (for example, ['text']).
     * If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data.
     * The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setFeatureTypes(java.util.Collection)} or {@link #withFeatureTypes(java.util.Collection)} if you want to
     * override the existing values.
     *

     *
     * @param featureTypes
     *        A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     *        FeatureTypes must have at least one 'text' string (for example,
     *        ['text']). If FeatureTypes is not provided, the explainer infers the feature
     *        types based on the baseline data. The feature types are included in the endpoint response payload. For
     *        additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see ClarifyFeatureType
     */

    public ClarifyInferenceConfig withFeatureTypes(String... featureTypes) {
        if (this.featureTypes == null) {
            setFeatureTypes(new java.util.ArrayList<String>(featureTypes.length));
        }
        for (String ele : featureTypes) {
            this.featureTypes.add(ele);
        }
        return this;
    }

    /**
     *

     * A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     * FeatureTypes must have at least one 'text' string (for example, ['text']).
     * If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data.
     * The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @param featureTypes
     *        A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     *        FeatureTypes must have at least one 'text' string (for example,
     *        ['text']). If FeatureTypes is not provided, the explainer infers the feature
     *        types based on the baseline data. The feature types are included in the endpoint response payload. For
     *        additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see ClarifyFeatureType
     */

    public ClarifyInferenceConfig withFeatureTypes(java.util.Collection<String> featureTypes) {
        setFeatureTypes(featureTypes);
        return this;
    }

    /**
     *

     * A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     * FeatureTypes must have at least one 'text' string (for example, ['text']).
     * If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data.
     * The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     *

     *
     * @param featureTypes
     *        A list of data types of the features (optional). Applicable only to NLP explainability. If provided,
     *        FeatureTypes must have at least one 'text' string (for example,
     *        ['text']). If FeatureTypes is not provided, the explainer infers the feature
     *        types based on the baseline data. The feature types are included in the endpoint response payload. For
     *        additional information see the response section under Invoke the endpoint in the Developer Guide for more information.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see ClarifyFeatureType
     */

    public ClarifyInferenceConfig withFeatureTypes(ClarifyFeatureType... featureTypes) {
        java.util.ArrayList<String> featureTypesCopy = new java.util.ArrayList<String>(featureTypes.length);
        for (ClarifyFeatureType value : featureTypes) {
            featureTypesCopy.add(value.toString());
        }
        if (getFeatureTypes() == null) {
            setFeatureTypes(featureTypesCopy);
        } else {
            getFeatureTypes().addAll(featureTypesCopy);
        }
        return this;
    }

    /**
     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
     * redacted from this string using a placeholder value.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getFeaturesAttribute() != null)
            sb.append("FeaturesAttribute: ").append(getFeaturesAttribute()).append(",");
        if (getContentTemplate() != null)
            sb.append("ContentTemplate: ").append(getContentTemplate()).append(",");
        if (getMaxRecordCount() != null)
            sb.append("MaxRecordCount: ").append(getMaxRecordCount()).append(",");
        if (getMaxPayloadInMB() != null)
            sb.append("MaxPayloadInMB: ").append(getMaxPayloadInMB()).append(",");
        if (getProbabilityIndex() != null)
            sb.append("ProbabilityIndex: ").append(getProbabilityIndex()).append(",");
        if (getLabelIndex() != null)
            sb.append("LabelIndex: ").append(getLabelIndex()).append(",");
        if (getProbabilityAttribute() != null)
            sb.append("ProbabilityAttribute: ").append(getProbabilityAttribute()).append(",");
        if (getLabelAttribute() != null)
            sb.append("LabelAttribute: ").append(getLabelAttribute()).append(",");
        if (getLabelHeaders() != null)
            sb.append("LabelHeaders: ").append(getLabelHeaders()).append(",");
        if (getFeatureHeaders() != null)
            sb.append("FeatureHeaders: ").append(getFeatureHeaders()).append(",");
        if (getFeatureTypes() != null)
            sb.append("FeatureTypes: ").append(getFeatureTypes());
        sb.append("}");
        return sb.toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof ClarifyInferenceConfig == false)
            return false;
        ClarifyInferenceConfig other = (ClarifyInferenceConfig) obj;
        if (other.getFeaturesAttribute() == null ^ this.getFeaturesAttribute() == null)
            return false;
        if (other.getFeaturesAttribute() != null && other.getFeaturesAttribute().equals(this.getFeaturesAttribute()) == false)
            return false;
        if (other.getContentTemplate() == null ^ this.getContentTemplate() == null)
            return false;
        if (other.getContentTemplate() != null && other.getContentTemplate().equals(this.getContentTemplate()) == false)
            return false;
        if (other.getMaxRecordCount() == null ^ this.getMaxRecordCount() == null)
            return false;
        if (other.getMaxRecordCount() != null && other.getMaxRecordCount().equals(this.getMaxRecordCount()) == false)
            return false;
        if (other.getMaxPayloadInMB() == null ^ this.getMaxPayloadInMB() == null)
            return false;
        if (other.getMaxPayloadInMB() != null && other.getMaxPayloadInMB().equals(this.getMaxPayloadInMB()) == false)
            return false;
        if (other.getProbabilityIndex() == null ^ this.getProbabilityIndex() == null)
            return false;
        if (other.getProbabilityIndex() != null && other.getProbabilityIndex().equals(this.getProbabilityIndex()) == false)
            return false;
        if (other.getLabelIndex() == null ^ this.getLabelIndex() == null)
            return false;
        if (other.getLabelIndex() != null && other.getLabelIndex().equals(this.getLabelIndex()) == false)
            return false;
        if (other.getProbabilityAttribute() == null ^ this.getProbabilityAttribute() == null)
            return false;
        if (other.getProbabilityAttribute() != null && other.getProbabilityAttribute().equals(this.getProbabilityAttribute()) == false)
            return false;
        if (other.getLabelAttribute() == null ^ this.getLabelAttribute() == null)
            return false;
        if (other.getLabelAttribute() != null && other.getLabelAttribute().equals(this.getLabelAttribute()) == false)
            return false;
        if (other.getLabelHeaders() == null ^ this.getLabelHeaders() == null)
            return false;
        if (other.getLabelHeaders() != null && other.getLabelHeaders().equals(this.getLabelHeaders()) == false)
            return false;
        if (other.getFeatureHeaders() == null ^ this.getFeatureHeaders() == null)
            return false;
        if (other.getFeatureHeaders() != null && other.getFeatureHeaders().equals(this.getFeatureHeaders()) == false)
            return false;
        if (other.getFeatureTypes() == null ^ this.getFeatureTypes() == null)
            return false;
        if (other.getFeatureTypes() != null && other.getFeatureTypes().equals(this.getFeatureTypes()) == false)
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;

        hashCode = prime * hashCode + ((getFeaturesAttribute() == null) ? 0 : getFeaturesAttribute().hashCode());
        hashCode = prime * hashCode + ((getContentTemplate() == null) ? 0 : getContentTemplate().hashCode());
        hashCode = prime * hashCode + ((getMaxRecordCount() == null) ? 0 : getMaxRecordCount().hashCode());
        hashCode = prime * hashCode + ((getMaxPayloadInMB() == null) ? 0 : getMaxPayloadInMB().hashCode());
        hashCode = prime * hashCode + ((getProbabilityIndex() == null) ? 0 : getProbabilityIndex().hashCode());
        hashCode = prime * hashCode + ((getLabelIndex() == null) ? 0 : getLabelIndex().hashCode());
        hashCode = prime * hashCode + ((getProbabilityAttribute() == null) ? 0 : getProbabilityAttribute().hashCode());
        hashCode = prime * hashCode + ((getLabelAttribute() == null) ? 0 : getLabelAttribute().hashCode());
        hashCode = prime * hashCode + ((getLabelHeaders() == null) ? 0 : getLabelHeaders().hashCode());
        hashCode = prime * hashCode + ((getFeatureHeaders() == null) ? 0 : getFeatureHeaders().hashCode());
        hashCode = prime * hashCode + ((getFeatureTypes() == null) ? 0 : getFeatureTypes().hashCode());
        return hashCode;
    }

    @Override
    public ClarifyInferenceConfig clone() {
        try {
            return (ClarifyInferenceConfig) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
        }
    }

    @com.amazonaws.annotation.SdkInternalApi
    @Override
    public void marshall(ProtocolMarshaller protocolMarshaller) {
        com.amazonaws.services.sagemaker.model.transform.ClarifyInferenceConfigMarshaller.getInstance().marshall(this, protocolMarshaller);
    }
}


text:
Clamshell is a tool that converts generic shell statements into shell specific
statements that can be sourced to set up an environment.

## Motivation

While working on a legacy project that used tcsh as its primary shell, I wanted
to use bash, but realized that some of the old schoolers actually liked tcsh.
This was the compromise.

## Installation

    gem install clamshell

##  Setting up an environment file

Sometimes your project has a dependency that is shell specific (environment variables,
aliases). Setup a `Shell.env` file in your project root with the following:

    Environment.setup ("bash") do
      env_var "LC_CTYPE", "en_US"
      env_var "PATH", :prepend => "~/bin",    :delimiter => ":"
      env_var "PATH", :append  => "/usr/bin", :delimiter => ":"
      env_alias editor "vim"
    end

You can convert these statements to bash statements as follows:

    clamshell convert SHELL.env

which will print the following to standard out (or to a file using the `--shell-out=FILE` flag).

    export LC_CTYPE=en_US
    export PATH=~/bin:$PATH
    export PATH=$PATH:/usr/bin
    alias editor=vim

### Shell independence

Your environment file doesn't even need to specify a shell:

    Environment.setup do
      ...
    end

But you must pass the flag `--shell=SHELLNAME`.
Best practices for multi-shell environments use the following command:

    --shell=`ps -p $$ | awk 'NR==2 {print $4}'`

which will set the shell flag to the type of shell currently being ran.

Currently, the shells supported are tcsh and bash. However, I am assuming that
csh and zsh are supported as well since they are closely related to tcsh and
bash, respectively. Hence, aliases are set up for their respective shells.

### Generic shell statements

You can also call generic shell statements that are valid in all shells:

    echo -n FOO

But you must be verbose that you are doing so:

    cmd "echo -n FOO"

### Unique shell statements

If you need to setup the environment and produce a shell command that is
different depending on the shell being used, the global variable `$SHELL`
is available:

    Environment.setup do
      if $SHELL == "tcsh"
        cmd "unlimit coredumpsize"
      elsif $SHELL == "bash"
        cmd "ulimit -c unlimited"
      end
    end

### Splitting the environment

If you want to split your environment files up, the `include_file` command
is as your disposal.

    Environment.setup do
      include_file "/path/to/another.file"
    end

`another.file`'s contents:

    env_var "CLASSPATH", :append => "~/java"
    cmd "echo FOOBAR"

If you definitely need to split your environment up, take this approach.

#### Pitfall

Another approach you might have considered is to generate multiple
files and source each one.

__DON'T!__

In tcsh, appending to an environment variable that doesn't exist throws an
error. There is an internal mechanism in clamshell that detects if an
environment variable doesn't exist. If it doesn't it creates one and sets
it to an empty string before appending.

So the previous example would generate the following statements:

    setenv CLASSPATH ""
    setenv CLASSPATH ${CLASSPATH}:~/java
    echo FOOBAR

This can cause some headaches if more than one file is generated.

*Rule of thumb: generate one file, source one file.*

### Conversion on the fly

If you need to convert a generic statement without using a file, you can
use the `convert_string` action, but you must specify a shell.

    clamshell convert_string "env_var 'FOO' 'BAR'" --shell=tcsh
    => setenv FOO BAR\n

redpajama_set_name: RedPajamaGithub


text:
package com.mnubo.java.sdk.client.config;

import static com.mnubo.java.sdk.client.Constants.AUTHENTICATION_PORT;
import static com.mnubo.java.sdk.client.Constants.CLIENT_BASE_PATH;
import static com.mnubo.java.sdk.client.Constants.CLIENT_CONNECTION_REQUEST_TIMEOUT;
import static com.mnubo.java.sdk.client.Constants.CLIENT_CONNECT_TIMEOUT;
import static com.mnubo.java.sdk.client.Constants.CLIENT_DEFAULT_TIMEOUT;
import static com.mnubo.java.sdk.client.Constants.CLIENT_DISABLE_AUTOMATIC_RETRIES;
import static com.mnubo.java.sdk.client.Constants.CLIENT_DISABLE_REDIRECT_HANDLING;
import static com.mnubo.java.sdk.client.Constants.CLIENT_MAX_CONNECTIONS_PER_ROUTE;
import static com.mnubo.java.sdk.client.Constants.CLIENT_MAX_TOTAL_CONNECTION;
import static com.mnubo.java.sdk.client.Constants.CLIENT_SOCKET_TIMEOUT;
import static com.mnubo.java.sdk.client.Constants.HOST_NAME;
import static com.mnubo.java.sdk.client.Constants.INGESTION_PORT;
import static com.mnubo.java.sdk.client.Constants.RESTITUTION_PORT;
import static com.mnubo.java.sdk.client.Constants.SECURITY_CONSUMER_KEY;
import static com.mnubo.java.sdk.client.Constants.SECURITY_CONSUMER_SECRET;
import static com.mnubo.java.sdk.client.utils.ValidationUtils.parseAsBoolean;
import static com.mnubo.java.sdk.client.utils.ValidationUtils.parseAsHttpProtocol;
import static com.mnubo.java.sdk.client.utils.ValidationUtils.parseAsInteger;
import static com.mnubo.java.sdk.client.utils.ValidationUtils.parseAsPort;
import static com.mnubo.java.sdk.client.utils.ValidationUtils.parseAsString;

public class MnuboSDKConfig {

    // default values
    public final static String DEFAULT_SCOPE = "ALL";
    public final static boolean DEFAULT_DISABLE_COOKIE_MANAGEMENT = true;
    public final static boolean DEFAULT_SYSTEM_PROPERTIES_ENABLE = true;

    // mandatory variables
    private final String hostName;
    private final String SecurityConsumerKey;
    private final String SecurityConsumerSecret;
    // optional variables
    private final int platformPort;
    private final int restitutionPort;
    private final int authenticationPort;
    private final String scope = DEFAULT_SCOPE;
    private final String httpProtocol;
    private final boolean httpDisableCockieManagement = DEFAULT_DISABLE_COOKIE_MANAGEMENT;
    private final boolean httpDisableRedirectHandling;
    private final boolean httpDisableAutomaticRetries;
    private final boolean httpSystemPropertiesEnable = DEFAULT_SYSTEM_PROPERTIES_ENABLE;
    private final int httpMaxTotalConnection;
    private final int httpMaxConnectionPerRoute;
    private final int httpDefaultTimeout;
    private final int httpConnectionTimeout;
    private final int httpConnectionRequestTimeout;
    private final int httpSoketTimeout;
    private final String basePath;

    private MnuboSDKConfig(String hostName, String SecurityConsumerKey, String SecurityConsumerSecret, int platformPort,
                           int restitutionPort, int authenticationPort, String httpProtocol, int httpDefaultTimeout,
                           boolean httpDisableRedirectHandling, String basePath,
                           boolean httpDisableAutomaticRetries, int httpSoketTimeout,
                           int httpMaxTotalConnection, int httpMaxConnectionPerRoute, int httpConnectionTimeout,
                           int httpConnectionRequestTimeout) {

        this.hostName = parseAsString(hostName, HOST_NAME);
        this.SecurityConsumerKey = parseAsString(SecurityConsumerKey, SECURITY_CONSUMER_KEY);
        this.SecurityConsumerSecret = parseAsString(SecurityConsumerSecret, SECURITY_CONSUMER_SECRET);
        this.platformPort = parseAsPort(Integer.toString(platformPort), INGESTION_PORT);
        this.restitutionPort = parseAsPort(Integer.toString(restitutionPort), RESTITUTION_PORT);
        this.authenticationPort = parseAsPort(Integer.toString(authenticationPort), AUTHENTICATION_PORT);
        this.httpProtocol = parseAsHttpProtocol(httpProtocol);
        this.httpDefaultTimeout = parseAsInteger(Integer.toString(httpDefaultTimeout), CLIENT_DEFAULT_TIMEOUT);
        this.httpDisableRedirectHandling = parseAsBoolean(Boolean.toString(httpDisableRedirectHandling),
                CLIENT_DISABLE_REDIRECT_HANDLING);
        this.basePath = parseAsString(basePath, CLIENT_BASE_PATH);
        this.httpDisableAutomaticRetries = parseAsBoolean(Boolean.toString(httpDisableAutomaticRetries),
                CLIENT_DISABLE_AUTOMATIC_RETRIES);
        this.httpMaxTotalConnection = parseAsInteger(Integer.toString(httpMaxTotalConnection),
                CLIENT_MAX_TOTAL_CONNECTION);
        this.httpConnectionRequestTimeout = parseAsInteger(Integer.toString(httpConnectionRequestTimeout),
                CLIENT_CONNECTION_REQUEST_TIMEOUT);
        this.httpMaxConnectionPerRoute = parseAsInteger(Integer.toString(httpMaxConnectionPerRoute),
                CLIENT_MAX_CONNECTIONS_PER_ROUTE);
        this.httpConnectionTimeout = parseAsInteger(Integer.toString(httpConnectionTimeout), CLIENT_CONNECT_TIMEOUT);
        this.httpSoketTimeout = parseAsInteger(Integer.toString(httpSoketTimeout), CLIENT_SOCKET_TIMEOUT);
    }

    public String getHostName() {
        return hostName;
    }

    public int getPlatformPort() {
        return platformPort;
    }

    public int getRestitutionPort() {
        return restitutionPort;
    }

    public int getAuthenticationPort() {
        return authenticationPort;
    }

    public String getSecurityConsumerKey() {
        return SecurityConsumerKey;
    }

    public String getSecurityConsumerSecret() {
        return SecurityConsumerSecret;
    }

    public String getScope() {
        return scope;
    }

    public String getHttpProtocol() {
        return httpProtocol;
    }

    public boolean isHttpDisableCockieManagement() {
        return httpDisableCockieManagement;
    }

    public boolean isHttpDisableRedirectHandling() {
        return httpDisableRedirectHandling;
    }

    public boolean isHttpDisableAutomaticRetries() {
        return httpDisableAutomaticRetries;
    }

    public boolean isHttpSystemPropertiesEnable() {
        return httpSystemPropertiesEnable;
    }

    public int getHttpMaxConnectionPerRoute() {
        return httpMaxConnectionPerRoute;
    }

    public int getHttpDefaultTimeout() {
        return httpDefaultTimeout;
    }

    public int getHttpConnectionRequestTimeout() {
        return httpConnectionRequestTimeout;
    }

    public int getHttpSoketTimeout() {
        return httpSoketTimeout;
    }

    public int getHttpMaxTotalConnection() {
        return httpMaxTotalConnection;
    }

    public String getHttpBasePath() {
        return basePath;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static class Builder {
        // default values
        public final static int DEFAULT_MAX_CONNECTIONS_PER_ROUTE = 200;
        public final static int DEFAULT_MAX_TOTAL_CONNECTIONS = 200;
        public final static int DEFAULT_TIMEOUT = 50000;
        public final static int DEFAULT_HOST_PORT = 443;
        public final static String DEFAULT_CLIENT_PROTOCOL = "https";
        public final static String DEFAULT_BASE_PATH = "/api/v3";
        public final static boolean DEFAULT_DISABLE_REDIRECT_HANDLING = false;
        public final static boolean DEFAULT_DISABLE_AUTOMATIC_RETRIES = false;

        private String hostName;
        private String SecurityConsumerKey;
        private String SecurityConsumerSecret;
        private int platformPort = DEFAULT_HOST_PORT;
        private int restitutionPort = DEFAULT_HOST_PORT;
        private int authenticationPort = DEFAULT_HOST_PORT;
        private String httpProtocol = DEFAULT_CLIENT_PROTOCOL;
        private boolean httpDisableRedirectHandling = DEFAULT_DISABLE_REDIRECT_HANDLING;
        private boolean httpDisableAutomaticRetries = DEFAULT_DISABLE_AUTOMATIC_RETRIES;
        private int httpMaxTotalConnection = DEFAULT_MAX_TOTAL_CONNECTIONS;
        private int httpMaxConnectionPerRoute = DEFAULT_MAX_CONNECTIONS_PER_ROUTE;
        private int httpDefaultTimeout = DEFAULT_TIMEOUT;
        private int httpConnectionTimeout = DEFAULT_TIMEOUT;
        private int httpConnectionRequestTimeout = DEFAULT_TIMEOUT;
        private int httpSocketTimeout = DEFAULT_TIMEOUT;
        private String basePath = DEFAULT_BASE_PATH;

        public Builder withHostName(String platformServer) {
            this.hostName = parseAsString(platformServer, HOST_NAME);
            return this;
        }

        public Builder withIngestionPort(String ingestionPort) {
            this.platformPort = parseAsPort(ingestionPort, INGESTION_PORT);
            return this;
        }

        public Builder withRestitutionPort(String restitutionPort) {
            this.restitutionPort = parseAsPort(restitutionPort, RESTITUTION_PORT);
            return this;
        }

        public Builder withAuthenticationPort(String authenticationPort) {
            this.authenticationPort = parseAsPort(authenticationPort, AUTHENTICATION_PORT);
            return this;
        }

        public Builder withSecurityConsumerKey(String securityConsumerkey) {
            this.SecurityConsumerKey = parseAsString(securityConsumerkey, SECURITY_CONSUMER_KEY);
            return this;
        }

        public Builder withSecurityConsumerSecret(String securityConsumerSecret) {
            this.SecurityConsumerSecret = parseAsString(securityConsumerSecret, SECURITY_CONSUMER_SECRET);
            return this;
        }

        public Builder withHttpProtocol(String httpProtocol) {
            this.httpProtocol = parseAsHttpProtocol(httpProtocol);
            return this;
        }

        public Builder withHttpDisableRedirectHandling(String httpDisableRedirectHandling) {
            this.httpDisableRedirectHandling =
                    parseAsBoolean(httpDisableRedirectHandling, CLIENT_DISABLE_REDIRECT_HANDLING);
            return this;
        }

        public Builder withHttpDisableAutomaticRetries(String httpDisableAutomaticRetries) {
            this.httpDisableAutomaticRetries = parseAsBoolean(httpDisableAutomaticRetries,
                    CLIENT_DISABLE_AUTOMATIC_RETRIES);
            return this;
        }

        public Builder withHttpMaxConnectionPerRoute(String maxConnectionPerRoute) {
            this.httpMaxConnectionPerRoute = parseAsInteger(maxConnectionPerRoute, CLIENT_MAX_CONNECTIONS_PER_ROUTE);
            return this;
        }

        public Builder withHttpDefaultTimeout(String httpDefaultTimeout) {
            this.httpDefaultTimeout = parseAsInteger(httpDefaultTimeout, CLIENT_DEFAULT_TIMEOUT);
            return this;
        }

        public Builder withHttpConnectionTimeout(String httpConnectionTiemout) {
            this.httpConnectionTimeout = parseAsInteger(httpConnectionTiemout, CLIENT_CONNECT_TIMEOUT);
            return this;
        }

        public Builder withHttpConnectionRequestTimeout(String httpConnectionRequestTimeout) {
            this.httpConnectionRequestTimeout = parseAsInteger(httpConnectionRequestTimeout,
                    CLIENT_CONNECTION_REQUEST_TIMEOUT);
            return this;
        }

        public Builder withHttpMaxTotalConnection(String maxTotalConnection) {
            this.httpMaxTotalConnection = parseAsInteger(maxTotalConnection, CLIENT_MAX_TOTAL_CONNECTION);
            return this;
        }

        public Builder withHttpSocketTimeout(String httpSocketTimeout) {
            this.httpSocketTimeout = parseAsInteger(httpSocketTimeout, CLIENT_SOCKET_TIMEOUT);
            return this;
        }

        public Builder withHttpBasePath(String basePath) {
            this.basePath = parseAsString(basePath, CLIENT_BASE_PATH);
            return this;
        }

        public MnuboSDKConfig build() {
            return new MnuboSDKConfig(hostName, SecurityConsumerKey, SecurityConsumerSecret, platformPort, restitutionPort,
                    authenticationPort, httpProtocol, httpDefaultTimeout, httpDisableRedirectHandling, basePath,
                    httpDisableAutomaticRetries, httpSocketTimeout, httpMaxTotalConnection, httpMaxConnectionPerRoute,
                    httpConnectionTimeout, httpConnectionRequestTimeout);
        }
    }

}


text:
export type ServerFromURL = {
    name: string;
    url: string;
}

export type Boundaries = {
    maxX: number;
    maxY: number;
    minX: number;
    minY: number;
    maxWidth: number;
    maxHeight: number;
}

export type DeepPartial<T> = {
    [P in keyof T]?: DeepPartial<T[P]>;
}


text:
<?php

namespace Rithis\Spriter\Test;

use PHPUnit_Framework_TestCase;
use Imagine\Gd\Imagine;
use Rithis\Spriter\Spriter;
use Rithis\Spriter\Formatter\TestPageFormatter;

class TestPageFormatterTest extends PHPUnit_Framework_TestCase
{
    public function testScan()
    {
        $sprite = (new Spriter(new Imagine()))->scan(__DIR__ . '/images');

        $html = (new TestPageFormatter())->format($sprite);

        $this->assertContains('.icon', $html);
        $this->assertContains('.facebook', $html);
        $this->assertContains('

', $html);
    }
}


text:
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Business Week: Jeffrey Zeldman: King of Web Standards</title>
	<atom:link href="http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/</link>
	<description>Working together for standards</description>
	<lastBuildDate>Wed, 27 Mar 2013 12:19:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Joern Puetz</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58904</link>
		<dc:creator>Joern Puetz</dc:creator>
		<pubDate>Mon, 05 Nov 2007 19:30:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58904</guid>
		<description>I started programming my first webiste in middle of 90´s with Netscape. My good so many has changed since this and the work of Zeldman really helped all of us</description>
		<content:encoded><![CDATA[
I started programming my first webiste in middle of 90´s with Netscape. My good so many has changed since this and the work of Zeldman really helped all of us

]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58884</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 05 Nov 2007 03:16:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58884</guid>
		<description>In regard to the article its important that more business people understand that their websites should be designed properly. Its easy for some designers to pull the old wool over the eyes on some issies but now business owners can just ask some simple questions to know if their sites are being designed right.</description>
		<content:encoded><![CDATA[
In regard to the article its important that more business people understand that their websites should be designed properly. Its easy for some designers to pull the old wool over the eyes on some issies but now business owners can just ask some simple questions to know if their sites are being designed right.

]]></content:encoded>
	</item>
	<item>
		<title>By: Zarabianie</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58873</link>
		<dc:creator>Zarabianie</dc:creator>
		<pubDate>Sun, 04 Nov 2007 13:32:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58873</guid>
		<description>Zeldman is the best!

Bravo!</description>
		<content:encoded><![CDATA[
Zeldman is the best!

Bravo!

]]></content:encoded>
	</item>
	<item>
		<title>By: masuren</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58865</link>
		<dc:creator>masuren</dc:creator>
		<pubDate>Sat, 03 Nov 2007 20:58:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58865</guid>
		<description>Art Direction doesn't happen on the web

Jeffrey Zeldman and Khoi Vinh are amongst a group of designers who have bemoaned the absence of art direction on the web. Khoi sums up my feelings exactly:

    At this stage in the development of Web design, we have become, I think, engrossed thoroughly by the practical difficulty (and the legitimate challenges) of achieving aesthetically rewarding user interfaces. As a result, our focus has become trained almost exclusively on designing platforms, on investing our innovation efforts within the infrastructure of our design solutions — in navigation conventions, mnemonic devices, user inputs, system feedback, etc. And we've given up, at least for now, on the opportunity to innovate within the presentation, the shaping of visual constructions specific to a given piece of content.
http://www.markboulton.co.uk/journal/comments/content_and_presentation/</description>
		<content:encoded><![CDATA[
Art Direction doesn't happen on the web

Jeffrey Zeldman and Khoi Vinh are amongst a group of designers who have bemoaned the absence of art direction on the web. Khoi sums up my feelings exactly:

    At this stage in the development of Web design, we have become, I think, engrossed thoroughly by the practical difficulty (and the legitimate challenges) of achieving aesthetically rewarding user interfaces. As a result, our focus has become trained almost exclusively on designing platforms, on investing our innovation efforts within the infrastructure of our design solutions — in navigation conventions, mnemonic devices, user inputs, system feedback, etc. And we've given up, at least for now, on the opportunity to innovate within the presentation, the shaping of visual constructions specific to a given piece of content.

http://www.markboulton.co.uk/journal/comments/content_and_presentation/

]]></content:encoded>
	</item>
	<item>
		<title>By: SM</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58862</link>
		<dc:creator>SM</dc:creator>
		<pubDate>Sat, 03 Nov 2007 16:52:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58862</guid>
		<description>My website started in december2007 and Zeldman's works helped my future projects. Thanks Mr. Zeldman</description>
		<content:encoded><![CDATA[
My website started in december2007 and Zeldman's works helped my future projects. Thanks Mr. Zeldman

]]></content:encoded>
	</item>
	<item>
		<title>By: Vectorpedia</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58861</link>
		<dc:creator>Vectorpedia</dc:creator>
		<pubDate>Sat, 03 Nov 2007 16:36:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58861</guid>
		<description>Much has been improved since I started in 1993....keep up the good work by educating about best practices,standards</description>
		<content:encoded><![CDATA[
Much has been improved since I started in 1993….keep up the good work by educating about best practices,standards

]]></content:encoded>
	</item>
	<item>
		<title>By: indir</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58842</link>
		<dc:creator>indir</dc:creator>
		<pubDate>Fri, 02 Nov 2007 12:06:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58842</guid>
		<description>I can't see there ever being a time when Web Standards wasn't needed more…the evangelising, educating…and dedicated practice of it.</description>
		<content:encoded><![CDATA[
I can't see there ever being a time when Web Standards wasn't needed more…the evangelising, educating…and dedicated practice of it.

]]></content:encoded>
	</item>
	<item>
		<title>By: Videoman</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58841</link>
		<dc:creator>Videoman</dc:creator>
		<pubDate>Fri, 02 Nov 2007 11:41:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58841</guid>
		<description>My website started 2001 and Zeldman's works helped my projects.He is a Great Man</description>
		<content:encoded><![CDATA[
My website started 2001 and Zeldman's works helped my projects.He is a Great Man

]]></content:encoded>
	</item>
	<item>
		<title>By: Tribulus</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58693</link>
		<dc:creator>Tribulus</dc:creator>
		<pubDate>Sat, 13 Oct 2007 17:41:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58693</guid>
		<description>I started creating websites in 2001 but Zeldman's work really helped me too and I think it will help many other people. Mr. Jeffrey Zeldman have my Thx.</description>
		<content:encoded><![CDATA[
I started creating websites in 2001 but Zeldman's work really helped me too and I think it will help many other people. Mr. Jeffrey Zeldman have my Thx.

]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Morton</title>
		<link>http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/comment-page-1/#comment-58673</link>
		<dc:creator>Richard Morton</dc:creator>
		<pubDate>Tue, 09 Oct 2007 14:58:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.webstandards.org/2007/08/07/business-week-jeffrey-zeldman-king-of-web-standards/#comment-58673</guid>
		<description>What depresses me is that even among web developers who profess adherence to standards there are many who's efforts don't even pass basic validation tests.</description>
		<content:encoded><![CDATA[
What depresses me is that even among web developers who profess adherence to standards there are many who’s efforts don’t even pass basic validation tests.

]]></content:encoded>
	</item>
</channel>
</rss>


text:
package com.blazebit.persistence.view.testsuite.update.subview.inverse.subtype;

import com.blazebit.persistence.testsuite.base.jpa.assertion.AssertStatementBuilder;
import com.blazebit.persistence.testsuite.base.jpa.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.jpa.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.view.FlushMode;
import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateDocumentTest;
import com.blazebit.persistence.view.testsuite.update.subview.inverse.subtype.model.CreatableDocumentView;
import com.blazebit.persistence.view.testsuite.update.subview.inverse.subtype.model.DocumentIdView;
import com.blazebit.persistence.view.testsuite.update.subview.inverse.subtype.model.PersonIdView;
import com.blazebit.persistence.view.testsuite.update.subview.inverse.subtype.model.DocumentView;
import com.blazebit.persistence.view.testsuite.update.subview.inverse.subtype.model.UpdatablePersonView;
import org.junit.Assert;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import java.util.HashSet;

/**
 *
 * @author Christian Beikov
 * @since 1.4.0
 */
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateSubviewInverseSubtypeTest extends AbstractEntityViewUpdateDocumentTest<UpdatablePersonView> {

    public EntityViewUpdateSubviewInverseSubtypeTest(FlushMode mode, FlushStrategy strategy, boolean version) {
        super(mode, strategy, version, UpdatablePersonView.class);
    }

    @Parameterized.Parameters(name = "{0} - {1} - VERSIONED={2}")
    public static Object[][] combinations() {
        return MODE_STRATEGY_VERSION_COMBINATIONS;
    }

    @Override
    protected void registerViewTypes(EntityViewConfiguration cfg) {
        cfg.addEntityView(PersonIdView.class);
        cfg.addEntityView(DocumentIdView.class);
        cfg.addEntityView(UpdatablePersonView.class);
        cfg.addEntityView(DocumentView.class);
        cfg.addEntityView(CreatableDocumentView.class);
    }

    @Test
    public void testAddNewElementToCollection() {
        // Given
        UpdatablePersonView newPerson = evm.create(UpdatablePersonView.class);
        newPerson.setName("newPers1");
        update(newPerson);

        // When
        CreatableDocumentView document = evm.create(CreatableDocumentView.class);
        document.setName("newDoc123");
        document.setOwner(getP1View(PersonIdView.class));
        newPerson.getOwnedDocuments2().add(document);
        update(newPerson);

        newPerson.getOwnedDocuments2().add(document);
        Assert.assertFalse(evm.getChangeModel(newPerson).get("ownedDocuments2").isDirty());

        // Then
        em.clear();
        Document newDocument = em.find(Document.class, document.getId());
        Assert.assertEquals(newPerson.getId(), newDocument.getResponsiblePerson().getId());
    }

    @Test
    public void testReplaceCollection() {
        // Given
        UpdatablePersonView newPerson = evm.create(UpdatablePersonView.class);
        newPerson.setName("newPers1");
        CreatableDocumentView document = evm.create(CreatableDocumentView.class);
        document.setName("newDoc123");
        document.setOwner(getP1View(PersonIdView.class));
        newPerson.getOwnedDocuments2().add(document);
        update(newPerson);

        // When
        newPerson.setOwnedDocuments2(new HashSet<>(newPerson.getOwnedDocuments2()));
        update(newPerson);

        // Then
        em.clear();
        Document newDocument = em.find(Document.class, document.getId());
        Assert.assertEquals(newPerson.getId(), newDocument.getResponsiblePerson().getId());
    }

    @Override
    protected void reload() {
    }

    @Override
    protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
        return builder;
    }

    @Override
    protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
        return builder;
    }

    @Override
    protected AssertStatementBuilder versionUpdate(AssertStatementBuilder builder) {
        return builder.update(Document.class);
    }
}


text:
set -eo pipefail
export RELEASE_VERSION="$(git describe --abbrev=0 | tr -d '\n')"
RELEASE_VERSION=${RELEASE_VERSION:1}
pod lib lint --allow-warnings
pod trunk push --allow-warnings


text:
package com.ytdl.api;

import java.util.List;
import java.util.UUID;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;

import com.ytdl.SingleRequest;

@RestController
@RequestMapping("/api/v1")
public class ApiController {

	private boolean success = true;

	@RequestMapping("/")
	public String index() {
		return "API v1.0";
	}

	@RequestMapping("/request")
	public ModelAndView getRequests(String vUrls) {
		success = true;
		UUID id = UUID.randomUUID();
		new Thread(new Runnable() {
			public void run() {
				if (!RequestHandler.submitRequest(id, vUrls))
					issueDetected();
			}
		}).start();
		if (success)
			return new ModelAndView(new RedirectView("/api/v1/track?sessionToken=" + id.toString(), true));
		else
			return new ModelAndView("/api/v1/issue?params=" + vUrls);
	}

	void issueDetected() {
		success = false;
	}

	@RequestMapping("/track")
	public String track(String sessionToken) {
		return "<!doctype html>   <link rel=\"stylesheet\" href=\"/bootstrap.min.css\"> <link rel=\"stylesheet\" href=\"/bootstrap-theme.min.css\">

 Nothing showing up? Refresh this page.

 #	 URL	 Title	 Status

 <button onClick=\"downloadAll()\";>Download</button>   ";
	}

	@RequestMapping("/issue")
	public String returnIssue(String params) {
		return "Issue getting data for: " + params;
	}

	@RequestMapping("/status")
	public String getStatus(String sessionToken) {
		//System.out.println(".......requesting token " + sessionToken);
		StringBuilder sB = new StringBuilder();
		try {
			List<SingleRequest> statusReq = SessionHandler.getStatus(UUID.fromString(sessionToken));
			for (SingleRequest r : statusReq) {
				sB.append(r + "|||||");
			}
			//System.out.println("ret:" + sB.toString());
		} catch (Exception e) {
			return "Invalid token request";
		}
		return sB.toString();
	}

	/*@RequestMapping("/files/getDownloadPath")
	public String getDownloadPath(String vId) {
		System.out.println("Trying to get path to " + vId);
		try {
			return "lol";
		} catch (ArrayIndexOutOfBoundsException ex) {
			return "N/A";
		}
	}*/

}


text:
from os import path

from setuptools import setup

here = path.abspath(path.dirname(__file__))

# Get the long description from the README file
with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
    long_description = f.read()

setup(
    name='xillypy',
    version='0.1.0',
    packages=['xillypy'],
    url='https://github.com/krabo0om/XillyPy',
    license='MIT',
    author='Paul Genssler',
    author_email='p.genssler@freenet.de',
    description='A simple Xillybus interface written in Python',
    long_description=long_description,
    keywords='xillybus interface development',
    classifiers=[
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'Topic :: Software Development :: User Interfaces',
        'Topic :: System :: Hardware',
        'Operating System :: Unix',

        # Pick your license as you wish (should match "license" above)
        'License :: OSI Approved :: MIT License',

        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
    ]
)


text:
package driver

// TestServerAPIVersion is the most recent, stable variant of options.ServerAPIVersion.
// Only to be used in testing.
const TestServerAPIVersion = "1"

// ServerAPIOptions represents options used to configure the API version sent to the server
// when running commands.
type ServerAPIOptions struct {
	ServerAPIVersion  string
	Strict            *bool
	DeprecationErrors *bool
}

// NewServerAPIOptions creates a new ServerAPIOptions configured with the provided serverAPIVersion.
func NewServerAPIOptions(serverAPIVersion string) *ServerAPIOptions {
	return &ServerAPIOptions{ServerAPIVersion: serverAPIVersion}
}

// SetStrict specifies whether the server should return errors for features that are not part of the API version.
func (s *ServerAPIOptions) SetStrict(strict bool) *ServerAPIOptions {
	s.Strict = &strict
	return s
}

// SetDeprecationErrors specifies whether the server should return errors for deprecated features.
func (s *ServerAPIOptions) SetDeprecationErrors(deprecationErrors bool) *ServerAPIOptions {
	s.DeprecationErrors = &deprecationErrors
	return s
}


text:
namespace GafferModule
{

void bindPlugAlgo();

} // namespace GafferModule

#endif // GAFFERMODULE_PLUGALGOBINDING_H


text:
package ethtool

import (
	"errors"
	"os/exec"
	"strings"
)

const command = "ethtool"

// Execute executes ethtool on local machine and filters output to return
// list of non-empty lines.
func (le *LocalExecutor) Execute(option, iface string) ([]string, error) {
	path, err := exec.LookPath(command)
	if err != nil {
		path = "/sbin/ethtool"
	}
	outBytes, err := exec.Command(path, option, iface).Output()
	if err != nil {
		return nil, err
	}

	lines := strings.Split(string(outBytes), "\n")
	output := make([]string, 0, len(lines))
	for _, line := range lines {
		line = strings.Trim(line, "\r\n")
		if line != "" {
			output = append(output, line)
		}
	}

	if len(output) <= 0 {
		return nil, errors.New("no output")
	}

	return output, nil
}


text:
package org.hisp.dhis.mapping;

import org.hisp.dhis.common.GenericIdentifiableObjectStore;

/**
 * @author Viet Nguyen <viet@dhis2.org>
 */
public interface ExternalMapLayerStore
    extends GenericIdentifiableObjectStore<ExternalMapLayer>
{
}