// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: configuration.proto

package de.mintware.barcode_scan;

public final class ConfigurationOuterClass {
  private ConfigurationOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface ConfigurationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:de.mintware.barcode_scan.Configuration)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    int getStringsCount();
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    boolean containsStrings(
        java.lang.String key);
    /**
     * Use {@link #getStringsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getStrings();
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getStringsMap();
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */

    java.lang.String getStringsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */

    java.lang.String getStringsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @return A list containing the restrictFormat.
     */
    java.util.List<de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat> getRestrictFormatList();
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @return The count of restrictFormat.
     */
    int getRestrictFormatCount();
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param index The index of the element to return.
     * @return The restrictFormat at the given index.
     */
    de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat getRestrictFormat(int index);
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @return A list containing the enum numeric values on the wire for restrictFormat.
     */
    java.util.List<java.lang.Integer>
    getRestrictFormatValueList();
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of restrictFormat at the given index.
     */
    int getRestrictFormatValue(int index);

    /**
     * <pre>
     * Index of the camera which should used. -1 uses the default camera
     * </pre>
     *
     * <code>int32 useCamera = 3;</code>
     * @return The useCamera.
     */
    int getUseCamera();

    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     * @return Whether the android field is set.
     */
    boolean hasAndroid();
    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     * @return The android.
     */
    de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration getAndroid();

    /**
     * <pre>
     * Set to true to automatically enable flash on camera start
     * </pre>
     *
     * <code>bool autoEnableFlash = 5;</code>
     * @return The autoEnableFlash.
     */
    boolean getAutoEnableFlash();
  }
  /**
   * Protobuf type {@code de.mintware.barcode_scan.Configuration}
   */
  public  static final class Configuration extends
      com.google.protobuf.GeneratedMessageLite<
          Configuration, Configuration.Builder> implements
      // @@protoc_insertion_point(message_implements:de.mintware.barcode_scan.Configuration)
      ConfigurationOrBuilder {
    private Configuration() {
      restrictFormat_ = emptyIntList();
    }
    public static final int STRINGS_FIELD_NUMBER = 1;
    private static final class StringsDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, java.lang.String> strings_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, java.lang.String>
    internalGetStrings() {
      return strings_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, java.lang.String>
    internalGetMutableStrings() {
      if (!strings_.isMutable()) {
        strings_ = strings_.mutableCopy();
      }
      return strings_;
    }
    @java.lang.Override

    public int getStringsCount() {
      return internalGetStrings().size();
    }
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    @java.lang.Override

    public boolean containsStrings(
        java.lang.String key) {
      key.getClass();
      return internalGetStrings().containsKey(key);
    }
    /**
     * Use {@link #getStringsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getStrings() {
      return getStringsMap();
    }
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getStringsMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetStrings());
    }
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    @java.lang.Override

    public java.lang.String getStringsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      key.getClass();
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetStrings();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    @java.lang.Override

    public java.lang.String getStringsOrThrow(
        java.lang.String key) {
      key.getClass();
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetStrings();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <pre>
     * Strings which are displayed to the user
     * </pre>
     *
     * <code>map&lt;string, string&gt; strings = 1;</code>
     */
    private java.util.Map<java.lang.String, java.lang.String>
    getMutableStringsMap() {
      return internalGetMutableStrings();
    }

    public static final int RESTRICTFORMAT_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.IntList restrictFormat_;
    private static final com.google.protobuf.Internal.ListAdapter.Converter<
        java.lang.Integer, de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat> restrictFormat_converter_ =
            new com.google.protobuf.Internal.ListAdapter.Converter<
                java.lang.Integer, de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat>() {
              @java.lang.Override
              public de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat convert(java.lang.Integer from) {
                de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat result = de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat.forNumber(from);
                return result == null ? de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat.UNRECOGNIZED : result;
              }
            };
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @return A list containing the restrictFormat.
     */
    @java.lang.Override
    public java.util.List<de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat> getRestrictFormatList() {
      return new com.google.protobuf.Internal.ListAdapter<
          java.lang.Integer, de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat>(restrictFormat_, restrictFormat_converter_);
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @return The count of restrictFormat.
     */
    @java.lang.Override
    public int getRestrictFormatCount() {
      return restrictFormat_.size();
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param index The index of the element to return.
     * @return The restrictFormat at the given index.
     */
    @java.lang.Override
    public de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat getRestrictFormat(int index) {
      return restrictFormat_converter_.convert(restrictFormat_.getInt(index));
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @return A list containing the enum numeric values on the wire for restrictFormat.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getRestrictFormatValueList() {
      return restrictFormat_;
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of restrictFormat at the given index.
     */
    @java.lang.Override
    public int getRestrictFormatValue(int index) {
      return restrictFormat_.getInt(index);
    }
    private int restrictFormatMemoizedSerializedSize;
    private void ensureRestrictFormatIsMutable() {
      if (!restrictFormat_.isModifiable()) {
        restrictFormat_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(restrictFormat_);
      }
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param index The index to set the value at.
     * @param value The restrictFormat to set.
     */
    private void setRestrictFormat(
        int index, de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat value) {
      value.getClass();
  ensureRestrictFormatIsMutable();
      restrictFormat_.setInt(index, value.getNumber());
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param value The restrictFormat to add.
     */
    private void addRestrictFormat(de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat value) {
      value.getClass();
  ensureRestrictFormatIsMutable();
      restrictFormat_.addInt(value.getNumber());
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param values The restrictFormat to add.
     */
    private void addAllRestrictFormat(
        java.lang.Iterable<? extends de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat> values) {
      ensureRestrictFormatIsMutable();
      for (de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat value : values) {
        restrictFormat_.addInt(value.getNumber());
      }
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     */
    private void clearRestrictFormat() {
      restrictFormat_ = emptyIntList();
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param value The enum numeric value on the wire for restrictFormat to set.
     */
    private void setRestrictFormatValue(
        int index, int value) {
      ensureRestrictFormatIsMutable();
      restrictFormat_.setInt(index, value);
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param value The enum numeric value on the wire for restrictFormat to add.
     */
    private void addRestrictFormatValue(int value) {
      ensureRestrictFormatIsMutable();
      restrictFormat_.addInt(value);
    }
    /**
     * <pre>
     * Restricts the barcode format which should be read
     * </pre>
     *
     * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
     * @param values The enum numeric values on the wire for restrictFormat to add.
     */
    private void addAllRestrictFormatValue(
        java.lang.Iterable<java.lang.Integer> values) {
      ensureRestrictFormatIsMutable();
      for (int value : values) {
        restrictFormat_.addInt(value);
      }
    }

    public static final int USECAMERA_FIELD_NUMBER = 3;
    private int useCamera_;
    /**
     * <pre>
     * Index of the camera which should used. -1 uses the default camera
     * </pre>
     *
     * <code>int32 useCamera = 3;</code>
     * @return The useCamera.
     */
    @java.lang.Override
    public int getUseCamera() {
      return useCamera_;
    }
    /**
     * <pre>
     * Index of the camera which should used. -1 uses the default camera
     * </pre>
     *
     * <code>int32 useCamera = 3;</code>
     * @param value The useCamera to set.
     */
    private void setUseCamera(int value) {
      
      useCamera_ = value;
    }
    /**
     * <pre>
     * Index of the camera which should used. -1 uses the default camera
     * </pre>
     *
     * <code>int32 useCamera = 3;</code>
     */
    private void clearUseCamera() {
      
      useCamera_ = 0;
    }

    public static final int ANDROID_FIELD_NUMBER = 4;
    private de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration android_;
    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     */
    @java.lang.Override
    public boolean hasAndroid() {
      return android_ != null;
    }
    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     */
    @java.lang.Override
    public de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration getAndroid() {
      return android_ == null ? de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration.getDefaultInstance() : android_;
    }
    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     */
    private void setAndroid(de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration value) {
      value.getClass();
  android_ = value;
      
      }
    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAndroid(de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration value) {
      value.getClass();
  if (android_ != null &&
          android_ != de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration.getDefaultInstance()) {
        android_ =
          de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration.newBuilder(android_).mergeFrom(value).buildPartial();
      } else {
        android_ = value;
      }
      
    }
    /**
     * <pre>
     * Android specific configuration
     * </pre>
     *
     * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
     */
    private void clearAndroid() {  android_ = null;
      
    }

    public static final int AUTOENABLEFLASH_FIELD_NUMBER = 5;
    private boolean autoEnableFlash_;
    /**
     * <pre>
     * Set to true to automatically enable flash on camera start
     * </pre>
     *
     * <code>bool autoEnableFlash = 5;</code>
     * @return The autoEnableFlash.
     */
    @java.lang.Override
    public boolean getAutoEnableFlash() {
      return autoEnableFlash_;
    }
    /**
     * <pre>
     * Set to true to automatically enable flash on camera start
     * </pre>
     *
     * <code>bool autoEnableFlash = 5;</code>
     * @param value The autoEnableFlash to set.
     */
    private void setAutoEnableFlash(boolean value) {
      
      autoEnableFlash_ = value;
    }
    /**
     * <pre>
     * Set to true to automatically enable flash on camera start
     * </pre>
     *
     * <code>bool autoEnableFlash = 5;</code>
     */
    private void clearAutoEnableFlash() {
      
      autoEnableFlash_ = false;
    }

    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(de.mintware.barcode_scan.ConfigurationOuterClass.Configuration prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code de.mintware.barcode_scan.Configuration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.mintware.barcode_scan.ConfigurationOuterClass.Configuration, Builder> implements
        // @@protoc_insertion_point(builder_implements:de.mintware.barcode_scan.Configuration)
        de.mintware.barcode_scan.ConfigurationOuterClass.ConfigurationOrBuilder {
      // Construct using de.mintware.barcode_scan.ConfigurationOuterClass.Configuration.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      @java.lang.Override

      public int getStringsCount() {
        return instance.getStringsMap().size();
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */
      @java.lang.Override

      public boolean containsStrings(
          java.lang.String key) {
        key.getClass();
        return instance.getStringsMap().containsKey(key);
      }

      public Builder clearStrings() {
        copyOnWrite();
        instance.getMutableStringsMap().clear();
        return this;
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */

      public Builder removeStrings(
          java.lang.String key) {
        key.getClass();
        copyOnWrite();
        instance.getMutableStringsMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getStringsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getStrings() {
        return getStringsMap();
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.String> getStringsMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getStringsMap());
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */
      @java.lang.Override

      public java.lang.String getStringsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        key.getClass();
        java.util.Map<java.lang.String, java.lang.String> map =
            instance.getStringsMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */
      @java.lang.Override

      public java.lang.String getStringsOrThrow(
          java.lang.String key) {
        key.getClass();
        java.util.Map<java.lang.String, java.lang.String> map =
            instance.getStringsMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */
      public Builder putStrings(
          java.lang.String key,
          java.lang.String value) {
        key.getClass();
        value.getClass();
        copyOnWrite();
        instance.getMutableStringsMap().put(key, value);
        return this;
      }
      /**
       * <pre>
       * Strings which are displayed to the user
       * </pre>
       *
       * <code>map&lt;string, string&gt; strings = 1;</code>
       */
      public Builder putAllStrings(
          java.util.Map<java.lang.String, java.lang.String> values) {
        copyOnWrite();
        instance.getMutableStringsMap().putAll(values);
        return this;
      }

      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @return A list containing the restrictFormat.
       */
      @java.lang.Override
      public java.util.List<de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat> getRestrictFormatList() {
        return instance.getRestrictFormatList();
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @return The count of restrictFormat.
       */
      @java.lang.Override
      public int getRestrictFormatCount() {
        return instance.getRestrictFormatCount();
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param index The index of the element to return.
       * @return The restrictFormat at the given index.
       */
      @java.lang.Override
      public de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat getRestrictFormat(int index) {
        return instance.getRestrictFormat(index);
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param index The index to set the value at.
       * @param value The restrictFormat to set.
       * @return This builder for chaining.
       */
      public Builder setRestrictFormat(
          int index, de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat value) {
        copyOnWrite();
        instance.setRestrictFormat(index, value);
        return this;
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param value The restrictFormat to add.
       * @return This builder for chaining.
       */
      public Builder addRestrictFormat(de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat value) {
        copyOnWrite();
        instance.addRestrictFormat(value);
        return this;
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param values The restrictFormat to add.
       * @return This builder for chaining.
       */
      public Builder addAllRestrictFormat(
          java.lang.Iterable<? extends de.mintware.barcode_scan.BarcodeFormatOuterClass.BarcodeFormat> values) {
        copyOnWrite();
        instance.addAllRestrictFormat(values);  return this;
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRestrictFormat() {
        copyOnWrite();
        instance.clearRestrictFormat();
        return this;
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @return A list containing the enum numeric values on the wire for restrictFormat.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
      getRestrictFormatValueList() {
        return java.util.Collections.unmodifiableList(
            instance.getRestrictFormatValueList());
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of restrictFormat at the given index.
       */
      @java.lang.Override
      public int getRestrictFormatValue(int index) {
        return instance.getRestrictFormatValue(index);
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for restrictFormat to set.
       * @return This builder for chaining.
       */
      public Builder setRestrictFormatValue(
          int index, int value) {
        copyOnWrite();
        instance.setRestrictFormatValue(index, value);
        return this;
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param value The enum numeric value on the wire for restrictFormat to add.
       * @return This builder for chaining.
       */
      public Builder addRestrictFormatValue(int value) {
        instance.addRestrictFormatValue(value);
        return this;
      }
      /**
       * <pre>
       * Restricts the barcode format which should be read
       * </pre>
       *
       * <code>repeated .de.mintware.barcode_scan.BarcodeFormat restrictFormat = 2;</code>
       * @param values The enum numeric values on the wire for restrictFormat to add.
       * @return This builder for chaining.
       */
      public Builder addAllRestrictFormatValue(
          java.lang.Iterable<java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllRestrictFormatValue(values);
        return this;
      }

      /**
       * <pre>
       * Index of the camera which should used. -1 uses the default camera
       * </pre>
       *
       * <code>int32 useCamera = 3;</code>
       * @return The useCamera.
       */
      @java.lang.Override
      public int getUseCamera() {
        return instance.getUseCamera();
      }
      /**
       * <pre>
       * Index of the camera which should used. -1 uses the default camera
       * </pre>
       *
       * <code>int32 useCamera = 3;</code>
       * @param value The useCamera to set.
       * @return This builder for chaining.
       */
      public Builder setUseCamera(int value) {
        copyOnWrite();
        instance.setUseCamera(value);
        return this;
      }
      /**
       * <pre>
       * Index of the camera which should used. -1 uses the default camera
       * </pre>
       *
       * <code>int32 useCamera = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUseCamera() {
        copyOnWrite();
        instance.clearUseCamera();
        return this;
      }

      /**
       * <pre>
       * Android specific configuration
       * </pre>
       *
       * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
       */
      @java.lang.Override
      public boolean hasAndroid() {
        return instance.hasAndroid();
      }
      /**
       * <pre>
       * Android specific configuration
       * </pre>
       *
       * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
       */
      @java.lang.Override
      public de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration getAndroid() {
        return instance.getAndroid();
      }
      /**
       * <pre>
       * Android specific configuration
       * </pre>
       *
       * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
       */
      public Builder setAndroid(de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration value) {
        copyOnWrite();
        instance.setAndroid(value);
        return this;
        }
      /**
       * <pre>
       * Android specific configuration
       * </pre>
       *
       * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
       */
      public Builder setAndroid(
          de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration.Builder builderForValue) {
        copyOnWrite();
        instance.setAndroid(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Android specific configuration
       * </pre>
       *
       * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
       */
      public Builder mergeAndroid(de.mintware.barcode_scan.AndroidConfigurationOuterClass.AndroidConfiguration value) {
        copyOnWrite();
        instance.mergeAndroid(value);
        return this;
      }
      /**
       * <pre>
       * Android specific configuration
       * </pre>
       *
       * <code>.de.mintware.barcode_scan.AndroidConfiguration android = 4;</code>
       */
      public Builder clearAndroid() {  copyOnWrite();
        instance.clearAndroid();
        return this;
      }

      /**
       * <pre>
       * Set to true to automatically enable flash on camera start
       * </pre>
       *
       * <code>bool autoEnableFlash = 5;</code>
       * @return The autoEnableFlash.
       */
      @java.lang.Override
      public boolean getAutoEnableFlash() {
        return instance.getAutoEnableFlash();
      }
      /**
       * <pre>
       * Set to true to automatically enable flash on camera start
       * </pre>
       *
       * <code>bool autoEnableFlash = 5;</code>
       * @param value The autoEnableFlash to set.
       * @return This builder for chaining.
       */
      public Builder setAutoEnableFlash(boolean value) {
        copyOnWrite();
        instance.setAutoEnableFlash(value);
        return this;
      }
      /**
       * <pre>
       * Set to true to automatically enable flash on camera start
       * </pre>
       *
       * <code>bool autoEnableFlash = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoEnableFlash() {
        copyOnWrite();
        instance.clearAutoEnableFlash();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:de.mintware.barcode_scan.Configuration)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new de.mintware.barcode_scan.ConfigurationOuterClass.Configuration();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "strings_",
              StringsDefaultEntryHolder.defaultEntry,
              "restrictFormat_",
              "useCamera_",
              "android_",
              "autoEnableFlash_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0001\u0001\u0000\u00012\u0002,\u0003" +
                "\u0004\u0004\t\u0005\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<de.mintware.barcode_scan.ConfigurationOuterClass.Configuration> parser = PARSER;
          if (parser == null) {
            synchronized (de.mintware.barcode_scan.ConfigurationOuterClass.Configuration.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<de.mintware.barcode_scan.ConfigurationOuterClass.Configuration>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:de.mintware.barcode_scan.Configuration)
    private static final de.mintware.barcode_scan.ConfigurationOuterClass.Configuration DEFAULT_INSTANCE;
    static {
      Configuration defaultInstance = new Configuration();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Configuration.class, defaultInstance);
    }

    public static de.mintware.barcode_scan.ConfigurationOuterClass.Configuration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Configuration> PARSER;

    public static com.google.protobuf.Parser<Configuration> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
