public final class

TypesProto

extends java.lang.Object

 java.lang.Object

↳androidx.wear.protolayout.proto.TypesProto

Gradle dependencies

compile group: 'androidx.wear.protolayout', name: 'protolayout-proto', version: '1.2.0'

  • groupId: androidx.wear.protolayout
  • artifactId: protolayout-proto
  • version: 1.2.0

Artifact androidx.wear.protolayout:protolayout-proto:1.2.0 it located at Google repository (https://maven.google.com/)

Summary

Methods
public static voidregisterAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

Source

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

package androidx.wear.protolayout.proto;

public final class TypesProto {
  private TypesProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface Int32PropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Int32Prop)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The static value.
     * </pre>
     *
     * <code>int32 value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * The static value.
     * </pre>
     *
     * <code>int32 value = 1;</code>
     * @return The value.
     */
    int getValue();

    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     * @return Whether the dynamicValue field is set.
     */
    boolean hasDynamicValue();
    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     * @return The dynamicValue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getDynamicValue();

    public androidx.wear.protolayout.proto.TypesProto.Int32Prop.OptionalValueCase getOptionalValueCase();
  }
  /**
   * <pre>
   * An int32 type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Int32Prop}
   */
  public  static final class Int32Prop extends
      com.google.protobuf.GeneratedMessageLite<
          Int32Prop, Int32Prop.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Int32Prop)
      Int32PropOrBuilder {
    private Int32Prop() {
    }
    private int optionalValueCase_ = 0;
    private java.lang.Object optionalValue_;
    public enum OptionalValueCase {
      VALUE(1),
      OPTIONALVALUE_NOT_SET(0);
      private final int value;
      private OptionalValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueCase forNumber(int value) {
        switch (value) {
          case 1: return VALUE;
          case 0: return OPTIONALVALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueCase
    getOptionalValueCase() {
      return OptionalValueCase.forNumber(
          optionalValueCase_);
    }

    private void clearOptionalValue() {
      optionalValueCase_ = 0;
      optionalValue_ = null;
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    /**
     * <pre>
     * The static value.
     * </pre>
     *
     * <code>int32 value = 1;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return optionalValueCase_ == 1;
    }
    /**
     * <pre>
     * The static value.
     * </pre>
     *
     * <code>int32 value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public int getValue() {
      if (optionalValueCase_ == 1) {
        return (java.lang.Integer) optionalValue_;
      }
      return 0;
    }
    /**
     * <pre>
     * The static value.
     * </pre>
     *
     * <code>int32 value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(int value) {
      optionalValueCase_ = 1;
      optionalValue_ = value;
    }
    /**
     * <pre>
     * The static value.
     * </pre>
     *
     * <code>int32 value = 1;</code>
     */
    private void clearValue() {
      if (optionalValueCase_ == 1) {
        optionalValueCase_ = 0;
        optionalValue_ = null;
      }
    }

    public static final int DYNAMIC_VALUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 dynamicValue_;
    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     */
    @java.lang.Override
    public boolean hasDynamicValue() {
      return dynamicValue_ != null;
    }
    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getDynamicValue() {
      return dynamicValue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : dynamicValue_;
    }
    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     */
    private void setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  dynamicValue_ = value;

      }
    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (dynamicValue_ != null &&
          dynamicValue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        dynamicValue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(dynamicValue_).mergeFrom(value).buildPartial();
      } else {
        dynamicValue_ = value;
      }

    }
    /**
     * <pre>
     * The dynamic value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
     */
    private void clearDynamicValue() {  dynamicValue_ = null;

    }

    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop 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 androidx.wear.protolayout.proto.TypesProto.Int32Prop parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop 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 androidx.wear.protolayout.proto.TypesProto.Int32Prop parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop 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 androidx.wear.protolayout.proto.TypesProto.Int32Prop parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop 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 androidx.wear.protolayout.proto.TypesProto.Int32Prop parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop 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(androidx.wear.protolayout.proto.TypesProto.Int32Prop prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An int32 type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Int32Prop}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.TypesProto.Int32Prop, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Int32Prop)
        androidx.wear.protolayout.proto.TypesProto.Int32PropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.TypesProto.Int32Prop.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalValueCase
          getOptionalValueCase() {
        return instance.getOptionalValueCase();
      }

      public Builder clearOptionalValue() {
        copyOnWrite();
        instance.clearOptionalValue();
        return this;
      }


      /**
       * <pre>
       * The static value.
       * </pre>
       *
       * <code>int32 value = 1;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * The static value.
       * </pre>
       *
       * <code>int32 value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public int getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The static value.
       * </pre>
       *
       * <code>int32 value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(int value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The static value.
       * </pre>
       *
       * <code>int32 value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <pre>
       * The dynamic value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasDynamicValue() {
        return instance.hasDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getDynamicValue() {
        return instance.getDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setDynamicValue(value);
        return this;
        }
      /**
       * <pre>
       * The dynamic value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setDynamicValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The dynamic value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
       */
      public Builder mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeDynamicValue(value);
        return this;
      }
      /**
       * <pre>
       * The dynamic value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 dynamic_value = 2;</code>
       */
      public Builder clearDynamicValue() {  copyOnWrite();
        instance.clearDynamicValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Int32Prop)
    }
    @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 androidx.wear.protolayout.proto.TypesProto.Int32Prop();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalValue_",
              "optionalValueCase_",
              "dynamicValue_",
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u00017\u0000\u0002\t" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.TypesProto.Int32Prop> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.TypesProto.Int32Prop.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.TypesProto.Int32Prop>(
                        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:androidx.wear.protolayout.proto.Int32Prop)
    private static final androidx.wear.protolayout.proto.TypesProto.Int32Prop DEFAULT_INSTANCE;
    static {
      Int32Prop defaultInstance = new Int32Prop();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Int32Prop.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.TypesProto.Int32Prop getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface StringPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.StringProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @return The value.
     */
    java.lang.String getValue();
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @return The bytes for value.
     */
    com.google.protobuf.ByteString
        getValueBytes();

    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     * @return Whether the dynamicValue field is set.
     */
    boolean hasDynamicValue();
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     * @return The dynamicValue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getDynamicValue();

    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @return Whether the valueForLayout field is set.
     */
    boolean hasValueForLayout();
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @return The valueForLayout.
     */
    java.lang.String getValueForLayout();
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @return The bytes for valueForLayout.
     */
    com.google.protobuf.ByteString
        getValueForLayoutBytes();

    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     * @return The enum numeric value on the wire for textAlignmentForLayout.
     */
    int getTextAlignmentForLayoutValue();
    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     * @return The textAlignmentForLayout.
     */
    androidx.wear.protolayout.proto.AlignmentProto.TextAlignment getTextAlignmentForLayout();

    public androidx.wear.protolayout.proto.TypesProto.StringProp.OptionalValueCase getOptionalValueCase();

    public androidx.wear.protolayout.proto.TypesProto.StringProp.OptionalValueForLayoutCase getOptionalValueForLayoutCase();
  }
  /**
   * <pre>
   * A string type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.StringProp}
   */
  public  static final class StringProp extends
      com.google.protobuf.GeneratedMessageLite<
          StringProp, StringProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.StringProp)
      StringPropOrBuilder {
    private StringProp() {
    }
    private int optionalValueCase_ = 0;
    private java.lang.Object optionalValue_;
    public enum OptionalValueCase {
      VALUE(1),
      OPTIONALVALUE_NOT_SET(0);
      private final int value;
      private OptionalValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueCase forNumber(int value) {
        switch (value) {
          case 1: return VALUE;
          case 0: return OPTIONALVALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueCase
    getOptionalValueCase() {
      return OptionalValueCase.forNumber(
          optionalValueCase_);
    }

    private void clearOptionalValue() {
      optionalValueCase_ = 0;
      optionalValue_ = null;
    }

    private int optionalValueForLayoutCase_ = 0;
    private java.lang.Object optionalValueForLayout_;
    public enum OptionalValueForLayoutCase {
      VALUE_FOR_LAYOUT(3),
      OPTIONALVALUEFORLAYOUT_NOT_SET(0);
      private final int value;
      private OptionalValueForLayoutCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueForLayoutCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueForLayoutCase forNumber(int value) {
        switch (value) {
          case 3: return VALUE_FOR_LAYOUT;
          case 0: return OPTIONALVALUEFORLAYOUT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueForLayoutCase
    getOptionalValueForLayoutCase() {
      return OptionalValueForLayoutCase.forNumber(
          optionalValueForLayoutCase_);
    }

    private void clearOptionalValueForLayout() {
      optionalValueForLayoutCase_ = 0;
      optionalValueForLayout_ = null;
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return optionalValueCase_ == 1;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public java.lang.String getValue() {
      java.lang.String ref = "";
      if (optionalValueCase_ == 1) {
        ref = (java.lang.String) optionalValue_;
      }
      return ref;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @return The bytes for value.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.String ref = "";
      if (optionalValueCase_ == 1) {
        ref = (java.lang.String) optionalValue_;
      }
      return com.google.protobuf.ByteString.copyFromUtf8(ref);
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  optionalValueCase_ = 1;
      optionalValue_ = value;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     */
    private void clearValue() {
      if (optionalValueCase_ == 1) {
        optionalValueCase_ = 0;
        optionalValue_ = null;
      }
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, {&#64;code null} will
     * be used instead.
     * </pre>
     *
     * <code>string value = 1;</code>
     * @param value The bytes for value to set.
     */
    private void setValueBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      optionalValue_ = value.toStringUtf8();
      optionalValueCase_ = 1;
    }

    public static final int DYNAMIC_VALUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString dynamicValue_;
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     */
    @java.lang.Override
    public boolean hasDynamicValue() {
      return dynamicValue_ != null;
    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getDynamicValue() {
      return dynamicValue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance() : dynamicValue_;
    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     */
    private void setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  dynamicValue_ = value;

      }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  if (dynamicValue_ != null &&
          dynamicValue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance()) {
        dynamicValue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.newBuilder(dynamicValue_).mergeFrom(value).buildPartial();
      } else {
        dynamicValue_ = value;
      }

    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
     */
    private void clearDynamicValue() {  dynamicValue_ = null;

    }

    public static final int VALUE_FOR_LAYOUT_FIELD_NUMBER = 3;
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @return Whether the valueForLayout field is set.
     */
    @java.lang.Override
    public boolean hasValueForLayout() {
      return optionalValueForLayoutCase_ == 3;
    }
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @return The valueForLayout.
     */
    @java.lang.Override
    public java.lang.String getValueForLayout() {
      java.lang.String ref = "";
      if (optionalValueForLayoutCase_ == 3) {
        ref = (java.lang.String) optionalValueForLayout_;
      }
      return ref;
    }
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @return The bytes for valueForLayout.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getValueForLayoutBytes() {
      java.lang.String ref = "";
      if (optionalValueForLayoutCase_ == 3) {
        ref = (java.lang.String) optionalValueForLayout_;
      }
      return com.google.protobuf.ByteString.copyFromUtf8(ref);
    }
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @param value The valueForLayout to set.
     */
    private void setValueForLayout(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  optionalValueForLayoutCase_ = 3;
      optionalValueForLayout_ = value;
    }
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     */
    private void clearValueForLayout() {
      if (optionalValueForLayoutCase_ == 3) {
        optionalValueForLayoutCase_ = 0;
        optionalValueForLayout_ = null;
      }
    }
    /**
     * <pre>
     * When used as a layout-changing data bind, the string to measure, when
     * considering how wide the element should be in the layout.
     * </pre>
     *
     * <code>string value_for_layout = 3;</code>
     * @param value The bytes for valueForLayout to set.
     */
    private void setValueForLayoutBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      optionalValueForLayout_ = value.toStringUtf8();
      optionalValueForLayoutCase_ = 3;
    }

    public static final int TEXT_ALIGNMENT_FOR_LAYOUT_FIELD_NUMBER = 4;
    private int textAlignmentForLayout_;
    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     * @return The enum numeric value on the wire for textAlignmentForLayout.
     */
    @java.lang.Override
    public int getTextAlignmentForLayoutValue() {
      return textAlignmentForLayout_;
    }
    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     * @return The textAlignmentForLayout.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.TextAlignment getTextAlignmentForLayout() {
      androidx.wear.protolayout.proto.AlignmentProto.TextAlignment result = androidx.wear.protolayout.proto.AlignmentProto.TextAlignment.forNumber(textAlignmentForLayout_);
      return result == null ? androidx.wear.protolayout.proto.AlignmentProto.TextAlignment.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     * @param value The enum numeric value on the wire for textAlignmentForLayout to set.
     */
    private void setTextAlignmentForLayoutValue(int value) {
        textAlignmentForLayout_ = value;
    }
    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     * @param value The textAlignmentForLayout to set.
     */
    private void setTextAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.TextAlignment value) {
      textAlignmentForLayout_ = value.getNumber();

    }
    /**
     * <pre>
     * Alignment alignment of the actual text within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
     */
    private void clearTextAlignmentForLayout() {

      textAlignmentForLayout_ = 0;
    }

    public static androidx.wear.protolayout.proto.TypesProto.StringProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp 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 androidx.wear.protolayout.proto.TypesProto.StringProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp 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 androidx.wear.protolayout.proto.TypesProto.StringProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp 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 androidx.wear.protolayout.proto.TypesProto.StringProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp 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 androidx.wear.protolayout.proto.TypesProto.StringProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.StringProp 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(androidx.wear.protolayout.proto.TypesProto.StringProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A string type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.StringProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.TypesProto.StringProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.StringProp)
        androidx.wear.protolayout.proto.TypesProto.StringPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalValueCase
          getOptionalValueCase() {
        return instance.getOptionalValueCase();
      }

      public Builder clearOptionalValue() {
        copyOnWrite();
        instance.clearOptionalValue();
        return this;
      }

      @java.lang.Override
      public OptionalValueForLayoutCase
          getOptionalValueForLayoutCase() {
        return instance.getOptionalValueForLayoutCase();
      }

      public Builder clearOptionalValueForLayout() {
        copyOnWrite();
        instance.clearOptionalValueForLayout();
        return this;
      }


      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, {&#64;code null} will
       * be used instead.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, {&#64;code null} will
       * be used instead.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public java.lang.String getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, {&#64;code null} will
       * be used instead.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getValueBytes() {
        return instance.getValueBytes();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, {&#64;code null} will
       * be used instead.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(
          java.lang.String value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, {&#64;code null} will
       * be used instead.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, {&#64;code null} will
       * be used instead.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @param value The bytes for value to set.
       * @return This builder for chaining.
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setValueBytes(value);
        return this;
      }

      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasDynamicValue() {
        return instance.hasDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getDynamicValue() {
        return instance.getDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.setDynamicValue(value);
        return this;
        }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.Builder builderForValue) {
        copyOnWrite();
        instance.setDynamicValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
       */
      public Builder mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.mergeDynamicValue(value);
        return this;
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString dynamic_value = 2;</code>
       */
      public Builder clearDynamicValue() {  copyOnWrite();
        instance.clearDynamicValue();
        return this;
      }

      /**
       * <pre>
       * When used as a layout-changing data bind, the string to measure, when
       * considering how wide the element should be in the layout.
       * </pre>
       *
       * <code>string value_for_layout = 3;</code>
       * @return Whether the valueForLayout field is set.
       */
      @java.lang.Override
      public boolean hasValueForLayout() {
        return instance.hasValueForLayout();
      }
      /**
       * <pre>
       * When used as a layout-changing data bind, the string to measure, when
       * considering how wide the element should be in the layout.
       * </pre>
       *
       * <code>string value_for_layout = 3;</code>
       * @return The valueForLayout.
       */
      @java.lang.Override
      public java.lang.String getValueForLayout() {
        return instance.getValueForLayout();
      }
      /**
       * <pre>
       * When used as a layout-changing data bind, the string to measure, when
       * considering how wide the element should be in the layout.
       * </pre>
       *
       * <code>string value_for_layout = 3;</code>
       * @return The bytes for valueForLayout.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getValueForLayoutBytes() {
        return instance.getValueForLayoutBytes();
      }
      /**
       * <pre>
       * When used as a layout-changing data bind, the string to measure, when
       * considering how wide the element should be in the layout.
       * </pre>
       *
       * <code>string value_for_layout = 3;</code>
       * @param value The valueForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setValueForLayout(
          java.lang.String value) {
        copyOnWrite();
        instance.setValueForLayout(value);
        return this;
      }
      /**
       * <pre>
       * When used as a layout-changing data bind, the string to measure, when
       * considering how wide the element should be in the layout.
       * </pre>
       *
       * <code>string value_for_layout = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueForLayout() {
        copyOnWrite();
        instance.clearValueForLayout();
        return this;
      }
      /**
       * <pre>
       * When used as a layout-changing data bind, the string to measure, when
       * considering how wide the element should be in the layout.
       * </pre>
       *
       * <code>string value_for_layout = 3;</code>
       * @param value The bytes for valueForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setValueForLayoutBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setValueForLayoutBytes(value);
        return this;
      }

      /**
       * <pre>
       * Alignment alignment of the actual text within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
       * @return The enum numeric value on the wire for textAlignmentForLayout.
       */
      @java.lang.Override
      public int getTextAlignmentForLayoutValue() {
        return instance.getTextAlignmentForLayoutValue();
      }
      /**
       * <pre>
       * Alignment alignment of the actual text within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
       * @param value The textAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setTextAlignmentForLayoutValue(int value) {
        copyOnWrite();
        instance.setTextAlignmentForLayoutValue(value);
        return this;
      }
      /**
       * <pre>
       * Alignment alignment of the actual text within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
       * @return The textAlignmentForLayout.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.TextAlignment getTextAlignmentForLayout() {
        return instance.getTextAlignmentForLayout();
      }
      /**
       * <pre>
       * Alignment alignment of the actual text within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
       * @param value The enum numeric value on the wire for textAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setTextAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.TextAlignment value) {
        copyOnWrite();
        instance.setTextAlignmentForLayout(value);
        return this;
      }
      /**
       * <pre>
       * Alignment alignment of the actual text within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignment text_alignment_for_layout = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTextAlignmentForLayout() {
        copyOnWrite();
        instance.clearTextAlignmentForLayout();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.StringProp)
    }
    @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 androidx.wear.protolayout.proto.TypesProto.StringProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalValue_",
              "optionalValueCase_",
              "optionalValueForLayout_",
              "optionalValueForLayoutCase_",
              "dynamicValue_",
              "textAlignmentForLayout_",
            };
            java.lang.String info =
                "\u0000\u0004\u0002\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u023b\u0000\u0002" +
                "\t\u0003\u023b\u0001\u0004\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.TypesProto.StringProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.TypesProto.StringProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.TypesProto.StringProp>(
                        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:androidx.wear.protolayout.proto.StringProp)
    private static final androidx.wear.protolayout.proto.TypesProto.StringProp DEFAULT_INSTANCE;
    static {
      StringProp defaultInstance = new StringProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StringProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.TypesProto.StringProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface FloatPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.FloatProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    float getValue();

    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     * @return Whether the dynamicValue field is set.
     */
    boolean hasDynamicValue();
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     * @return The dynamicValue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue();

    public androidx.wear.protolayout.proto.TypesProto.FloatProp.OptionalValueCase getOptionalValueCase();
  }
  /**
   * <pre>
   * A float type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.FloatProp}
   */
  public  static final class FloatProp extends
      com.google.protobuf.GeneratedMessageLite<
          FloatProp, FloatProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.FloatProp)
      FloatPropOrBuilder {
    private FloatProp() {
    }
    private int optionalValueCase_ = 0;
    private java.lang.Object optionalValue_;
    public enum OptionalValueCase {
      VALUE(1),
      OPTIONALVALUE_NOT_SET(0);
      private final int value;
      private OptionalValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueCase forNumber(int value) {
        switch (value) {
          case 1: return VALUE;
          case 0: return OPTIONALVALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueCase
    getOptionalValueCase() {
      return OptionalValueCase.forNumber(
          optionalValueCase_);
    }

    private void clearOptionalValue() {
      optionalValueCase_ = 0;
      optionalValue_ = null;
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return optionalValueCase_ == 1;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public float getValue() {
      if (optionalValueCase_ == 1) {
        return (java.lang.Float) optionalValue_;
      }
      return 0F;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(float value) {
      optionalValueCase_ = 1;
      optionalValue_ = value;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     */
    private void clearValue() {
      if (optionalValueCase_ == 1) {
        optionalValueCase_ = 0;
        optionalValue_ = null;
      }
    }

    public static final int DYNAMIC_VALUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat dynamicValue_;
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.Override
    public boolean hasDynamicValue() {
      return dynamicValue_ != null;
    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue() {
      return dynamicValue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : dynamicValue_;
    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    private void setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  dynamicValue_ = value;

      }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (dynamicValue_ != null &&
          dynamicValue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        dynamicValue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(dynamicValue_).mergeFrom(value).buildPartial();
      } else {
        dynamicValue_ = value;
      }

    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    private void clearDynamicValue() {  dynamicValue_ = null;

    }

    public static androidx.wear.protolayout.proto.TypesProto.FloatProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp 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 androidx.wear.protolayout.proto.TypesProto.FloatProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp 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 androidx.wear.protolayout.proto.TypesProto.FloatProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp 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 androidx.wear.protolayout.proto.TypesProto.FloatProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp 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 androidx.wear.protolayout.proto.TypesProto.FloatProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.FloatProp 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(androidx.wear.protolayout.proto.TypesProto.FloatProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A float type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.FloatProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.TypesProto.FloatProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.FloatProp)
        androidx.wear.protolayout.proto.TypesProto.FloatPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalValueCase
          getOptionalValueCase() {
        return instance.getOptionalValueCase();
      }

      public Builder clearOptionalValue() {
        copyOnWrite();
        instance.clearOptionalValue();
        return this;
      }


      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public float getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(float value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasDynamicValue() {
        return instance.hasDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue() {
        return instance.getDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setDynamicValue(value);
        return this;
        }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setDynamicValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeDynamicValue(value);
        return this;
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder clearDynamicValue() {  copyOnWrite();
        instance.clearDynamicValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.FloatProp)
    }
    @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 androidx.wear.protolayout.proto.TypesProto.FloatProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalValue_",
              "optionalValueCase_",
              "dynamicValue_",
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u00014\u0000\u0002\t" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.TypesProto.FloatProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.TypesProto.FloatProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.TypesProto.FloatProp>(
                        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:androidx.wear.protolayout.proto.FloatProp)
    private static final androidx.wear.protolayout.proto.TypesProto.FloatProp DEFAULT_INSTANCE;
    static {
      FloatProp defaultInstance = new FloatProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FloatProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.TypesProto.FloatProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface BoolPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.BoolProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, false will be used
     * instead.
     * </pre>
     *
     * <code>bool value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, false will be used
     * instead.
     * </pre>
     *
     * <code>bool value = 1;</code>
     * @return The value.
     */
    boolean getValue();

    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     * @return Whether the dynamicValue field is set.
     */
    boolean hasDynamicValue();
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     * @return The dynamicValue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getDynamicValue();

    public androidx.wear.protolayout.proto.TypesProto.BoolProp.OptionalValueCase getOptionalValueCase();
  }
  /**
   * <pre>
   * A boolean type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.BoolProp}
   */
  public  static final class BoolProp extends
      com.google.protobuf.GeneratedMessageLite<
          BoolProp, BoolProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.BoolProp)
      BoolPropOrBuilder {
    private BoolProp() {
    }
    private int optionalValueCase_ = 0;
    private java.lang.Object optionalValue_;
    public enum OptionalValueCase {
      VALUE(1),
      OPTIONALVALUE_NOT_SET(0);
      private final int value;
      private OptionalValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueCase forNumber(int value) {
        switch (value) {
          case 1: return VALUE;
          case 0: return OPTIONALVALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueCase
    getOptionalValueCase() {
      return OptionalValueCase.forNumber(
          optionalValueCase_);
    }

    private void clearOptionalValue() {
      optionalValueCase_ = 0;
      optionalValue_ = null;
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, false will be used
     * instead.
     * </pre>
     *
     * <code>bool value = 1;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return optionalValueCase_ == 1;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, false will be used
     * instead.
     * </pre>
     *
     * <code>bool value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public boolean getValue() {
      if (optionalValueCase_ == 1) {
        return (java.lang.Boolean) optionalValue_;
      }
      return false;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, false will be used
     * instead.
     * </pre>
     *
     * <code>bool value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(boolean value) {
      optionalValueCase_ = 1;
      optionalValue_ = value;
    }
    /**
     * <pre>
     * The static value. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, false will be used
     * instead.
     * </pre>
     *
     * <code>bool value = 1;</code>
     */
    private void clearValue() {
      if (optionalValueCase_ == 1) {
        optionalValueCase_ = 0;
        optionalValue_ = null;
      }
    }

    public static final int DYNAMIC_VALUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool dynamicValue_;
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     */
    @java.lang.Override
    public boolean hasDynamicValue() {
      return dynamicValue_ != null;
    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getDynamicValue() {
      return dynamicValue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : dynamicValue_;
    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     */
    private void setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  dynamicValue_ = value;

      }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (dynamicValue_ != null &&
          dynamicValue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        dynamicValue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(dynamicValue_).mergeFrom(value).buildPartial();
      } else {
        dynamicValue_ = value;
      }

    }
    /**
     * <pre>
     * The dynamic value. Note that when setting this value, the static value is
     * still required to be set to support older renderers that only read the
     * static value. If {&#64;code dynamicValue} has an invalid result, the provided
     * static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
     */
    private void clearDynamicValue() {  dynamicValue_ = null;

    }

    public static androidx.wear.protolayout.proto.TypesProto.BoolProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp 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 androidx.wear.protolayout.proto.TypesProto.BoolProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp 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 androidx.wear.protolayout.proto.TypesProto.BoolProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp 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 androidx.wear.protolayout.proto.TypesProto.BoolProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp 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 androidx.wear.protolayout.proto.TypesProto.BoolProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.TypesProto.BoolProp 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(androidx.wear.protolayout.proto.TypesProto.BoolProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A boolean type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.BoolProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.TypesProto.BoolProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.BoolProp)
        androidx.wear.protolayout.proto.TypesProto.BoolPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalValueCase
          getOptionalValueCase() {
        return instance.getOptionalValueCase();
      }

      public Builder clearOptionalValue() {
        copyOnWrite();
        instance.clearOptionalValue();
        return this;
      }


      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, false will be used
       * instead.
       * </pre>
       *
       * <code>bool value = 1;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, false will be used
       * instead.
       * </pre>
       *
       * <code>bool value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public boolean getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, false will be used
       * instead.
       * </pre>
       *
       * <code>bool value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(boolean value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The static value. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, false will be used
       * instead.
       * </pre>
       *
       * <code>bool value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasDynamicValue() {
        return instance.hasDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getDynamicValue() {
        return instance.getDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setDynamicValue(value);
        return this;
        }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setDynamicValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
       */
      public Builder mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeDynamicValue(value);
        return this;
      }
      /**
       * <pre>
       * The dynamic value. Note that when setting this value, the static value is
       * still required to be set to support older renderers that only read the
       * static value. If {&#64;code dynamicValue} has an invalid result, the provided
       * static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool dynamic_value = 2;</code>
       */
      public Builder clearDynamicValue() {  copyOnWrite();
        instance.clearDynamicValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.BoolProp)
    }
    @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 androidx.wear.protolayout.proto.TypesProto.BoolProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalValue_",
              "optionalValueCase_",
              "dynamicValue_",
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001:\u0000\u0002\t" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.TypesProto.BoolProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.TypesProto.BoolProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.TypesProto.BoolProp>(
                        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:androidx.wear.protolayout.proto.BoolProp)
    private static final androidx.wear.protolayout.proto.TypesProto.BoolProp DEFAULT_INSTANCE;
    static {
      BoolProp defaultInstance = new BoolProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BoolProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.TypesProto.BoolProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}