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

package org.roylance.yaclib;

public final class YaclibView {
  private YaclibView() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   *

   * simple view definition
   * if it ends with view, it's a view
   * its children are now components
   * a view is a list of views
   * let's do some concrete tests...
   * step 1, UI framework in protobuf models
   *

   *
   * Protobuf enum {@code org.roylance.yaclib.VisualSize}
   */
  public enum VisualSize
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * PARAGRAPH = 0;
     */
    PARAGRAPH(0),
    /**
     * H4 = 1;
     */
    H4(1),
    /**
     * H3 = 2;
     */
    H3(2),
    /**
     * H2 = 3;
     */
    H2(3),
    /**
     * H1 = 4;
     */
    H1(4),
    UNRECOGNIZED(-1),
    ;

    /**
     * PARAGRAPH = 0;
     */
    public static final int PARAGRAPH_VALUE = 0;
    /**
     * H4 = 1;
     */
    public static final int H4_VALUE = 1;
    /**
     * H3 = 2;
     */
    public static final int H3_VALUE = 2;
    /**
     * H2 = 3;
     */
    public static final int H2_VALUE = 3;
    /**
     * H1 = 4;
     */
    public static final int H1_VALUE = 4;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static VisualSize valueOf(int value) {
      return forNumber(value);
    }

    public static VisualSize forNumber(int value) {
      switch (value) {
        case 0: return PARAGRAPH;
        case 1: return H4;
        case 2: return H3;
        case 3: return H2;
        case 4: return H1;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<VisualSize>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        VisualSize> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<VisualSize>() {
            public VisualSize findValueByNumber(int number) {
              return VisualSize.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.getDescriptor().getEnumTypes().get(0);
    }

    private static final VisualSize[] VALUES = values();

    public static VisualSize valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private VisualSize(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.roylance.yaclib.VisualSize)
  }

  /**
   * Protobuf enum {@code org.roylance.yaclib.ColumnSpan}
   */
  public enum ColumnSpan
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * SPAN_1 = 0;
     */
    SPAN_1(0),
    /**
     * SPAN_2 = 1;
     */
    SPAN_2(1),
    /**
     * SPAN_3 = 2;
     */
    SPAN_3(2),
    /**
     * SPAN_4 = 3;
     */
    SPAN_4(3),
    /**
     * SPAN_5 = 4;
     */
    SPAN_5(4),
    /**
     * SPAN_6 = 5;
     */
    SPAN_6(5),
    /**
     * SPAN_7 = 6;
     */
    SPAN_7(6),
    /**
     * SPAN_8 = 7;
     */
    SPAN_8(7),
    /**
     * SPAN_9 = 8;
     */
    SPAN_9(8),
    /**
     * SPAN_10 = 9;
     */
    SPAN_10(9),
    /**
     * SPAN_11 = 10;
     */
    SPAN_11(10),
    /**
     * SPAN_12 = 11;
     */
    SPAN_12(11),
    /**
     * SPAN_OFFSET_1 = 12;
     */
    SPAN_OFFSET_1(12),
    /**
     * SPAN_OFFSET_2 = 13;
     */
    SPAN_OFFSET_2(13),
    /**
     * SPAN_OFFSET_3 = 14;
     */
    SPAN_OFFSET_3(14),
    /**
     * SPAN_OFFSET_4 = 15;
     */
    SPAN_OFFSET_4(15),
    /**
     * SPAN_OFFSET_5 = 16;
     */
    SPAN_OFFSET_5(16),
    /**
     * SPAN_OFFSET_6 = 17;
     */
    SPAN_OFFSET_6(17),
    /**
     * SPAN_OFFSET_7 = 18;
     */
    SPAN_OFFSET_7(18),
    /**
     * SPAN_OFFSET_8 = 19;
     */
    SPAN_OFFSET_8(19),
    /**
     * SPAN_OFFSET_9 = 20;
     */
    SPAN_OFFSET_9(20),
    /**
     * SPAN_OFFSET_10 = 21;
     */
    SPAN_OFFSET_10(21),
    /**
     * SPAN_OFFSET_11 = 22;
     */
    SPAN_OFFSET_11(22),
    /**
     * SPAN_OFFSET_12 = 23;
     */
    SPAN_OFFSET_12(23),
    UNRECOGNIZED(-1),
    ;

    /**
     * SPAN_1 = 0;
     */
    public static final int SPAN_1_VALUE = 0;
    /**
     * SPAN_2 = 1;
     */
    public static final int SPAN_2_VALUE = 1;
    /**
     * SPAN_3 = 2;
     */
    public static final int SPAN_3_VALUE = 2;
    /**
     * SPAN_4 = 3;
     */
    public static final int SPAN_4_VALUE = 3;
    /**
     * SPAN_5 = 4;
     */
    public static final int SPAN_5_VALUE = 4;
    /**
     * SPAN_6 = 5;
     */
    public static final int SPAN_6_VALUE = 5;
    /**
     * SPAN_7 = 6;
     */
    public static final int SPAN_7_VALUE = 6;
    /**
     * SPAN_8 = 7;
     */
    public static final int SPAN_8_VALUE = 7;
    /**
     * SPAN_9 = 8;
     */
    public static final int SPAN_9_VALUE = 8;
    /**
     * SPAN_10 = 9;
     */
    public static final int SPAN_10_VALUE = 9;
    /**
     * SPAN_11 = 10;
     */
    public static final int SPAN_11_VALUE = 10;
    /**
     * SPAN_12 = 11;
     */
    public static final int SPAN_12_VALUE = 11;
    /**
     * SPAN_OFFSET_1 = 12;
     */
    public static final int SPAN_OFFSET_1_VALUE = 12;
    /**
     * SPAN_OFFSET_2 = 13;
     */
    public static final int SPAN_OFFSET_2_VALUE = 13;
    /**
     * SPAN_OFFSET_3 = 14;
     */
    public static final int SPAN_OFFSET_3_VALUE = 14;
    /**
     * SPAN_OFFSET_4 = 15;
     */
    public static final int SPAN_OFFSET_4_VALUE = 15;
    /**
     * SPAN_OFFSET_5 = 16;
     */
    public static final int SPAN_OFFSET_5_VALUE = 16;
    /**
     * SPAN_OFFSET_6 = 17;
     */
    public static final int SPAN_OFFSET_6_VALUE = 17;
    /**
     * SPAN_OFFSET_7 = 18;
     */
    public static final int SPAN_OFFSET_7_VALUE = 18;
    /**
     * SPAN_OFFSET_8 = 19;
     */
    public static final int SPAN_OFFSET_8_VALUE = 19;
    /**
     * SPAN_OFFSET_9 = 20;
     */
    public static final int SPAN_OFFSET_9_VALUE = 20;
    /**
     * SPAN_OFFSET_10 = 21;
     */
    public static final int SPAN_OFFSET_10_VALUE = 21;
    /**
     * SPAN_OFFSET_11 = 22;
     */
    public static final int SPAN_OFFSET_11_VALUE = 22;
    /**
     * SPAN_OFFSET_12 = 23;
     */
    public static final int SPAN_OFFSET_12_VALUE = 23;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ColumnSpan valueOf(int value) {
      return forNumber(value);
    }

    public static ColumnSpan forNumber(int value) {
      switch (value) {
        case 0: return SPAN_1;
        case 1: return SPAN_2;
        case 2: return SPAN_3;
        case 3: return SPAN_4;
        case 4: return SPAN_5;
        case 5: return SPAN_6;
        case 6: return SPAN_7;
        case 7: return SPAN_8;
        case 8: return SPAN_9;
        case 9: return SPAN_10;
        case 10: return SPAN_11;
        case 11: return SPAN_12;
        case 12: return SPAN_OFFSET_1;
        case 13: return SPAN_OFFSET_2;
        case 14: return SPAN_OFFSET_3;
        case 15: return SPAN_OFFSET_4;
        case 16: return SPAN_OFFSET_5;
        case 17: return SPAN_OFFSET_6;
        case 18: return SPAN_OFFSET_7;
        case 19: return SPAN_OFFSET_8;
        case 20: return SPAN_OFFSET_9;
        case 21: return SPAN_OFFSET_10;
        case 22: return SPAN_OFFSET_11;
        case 23: return SPAN_OFFSET_12;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ColumnSpan>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ColumnSpan> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ColumnSpan>() {
            public ColumnSpan findValueByNumber(int number) {
              return ColumnSpan.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.getDescriptor().getEnumTypes().get(1);
    }

    private static final ColumnSpan[] VALUES = values();

    public static ColumnSpan valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ColumnSpan(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.roylance.yaclib.ColumnSpan)
  }

  /**
   * Protobuf enum {@code org.roylance.yaclib.ViewType}
   */
  public enum ViewType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * CONTAINER = 0;
     */
    CONTAINER(0),
    /**
     * ROW = 1;
     */
    ROW(1),
    /**
     * FORM = 2;
     */
    FORM(2),
    /**
     * ROOT = 3;
     */
    ROOT(3),
    /**
     * NAV = 4;
     */
    NAV(4),
    /**
     * UL = 5;
     */
    UL(5),
    /**
     * LI = 6;
     */
    LI(6),
    UNRECOGNIZED(-1),
    ;

    /**
     * CONTAINER = 0;
     */
    public static final int CONTAINER_VALUE = 0;
    /**
     * ROW = 1;
     */
    public static final int ROW_VALUE = 1;
    /**
     * FORM = 2;
     */
    public static final int FORM_VALUE = 2;
    /**
     * ROOT = 3;
     */
    public static final int ROOT_VALUE = 3;
    /**
     * NAV = 4;
     */
    public static final int NAV_VALUE = 4;
    /**
     * UL = 5;
     */
    public static final int UL_VALUE = 5;
    /**
     * LI = 6;
     */
    public static final int LI_VALUE = 6;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ViewType valueOf(int value) {
      return forNumber(value);
    }

    public static ViewType forNumber(int value) {
      switch (value) {
        case 0: return CONTAINER;
        case 1: return ROW;
        case 2: return FORM;
        case 3: return ROOT;
        case 4: return NAV;
        case 5: return UL;
        case 6: return LI;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ViewType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ViewType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ViewType>() {
            public ViewType findValueByNumber(int number) {
              return ViewType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.getDescriptor().getEnumTypes().get(2);
    }

    private static final ViewType[] VALUES = values();

    public static ViewType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ViewType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.roylance.yaclib.ViewType)
  }

  public interface ColumnDefinitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.roylance.yaclib.ColumnDefinition)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .org.roylance.yaclib.BindingDefinition binding = 1;
     */
    boolean hasBinding();
    /**
     * .org.roylance.yaclib.BindingDefinition binding = 1;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinition getBinding();
    /**
     * .org.roylance.yaclib.BindingDefinition binding = 1;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getBindingOrBuilder();

    /**
     * .org.roylance.yaclib.VisualSize visual_size = 2;
     */
    int getVisualSizeValue();
    /**
     * .org.roylance.yaclib.VisualSize visual_size = 2;
     */
    org.roylance.yaclib.YaclibView.VisualSize getVisualSize();

    /**
     * .org.roylance.yaclib.BindingDefinition show = 3;
     */
    boolean hasShow();
    /**
     * .org.roylance.yaclib.BindingDefinition show = 3;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow();
    /**
     * .org.roylance.yaclib.BindingDefinition show = 3;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder();

    /**
     * string title = 4;
     */
    java.lang.String getTitle();
    /**
     * string title = 4;
     */
    com.google.protobuf.ByteString
        getTitleBytes();
  }
  /**
   * Protobuf type {@code org.roylance.yaclib.ColumnDefinition}
   */
  public  static final class ColumnDefinition extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.roylance.yaclib.ColumnDefinition)
      ColumnDefinitionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ColumnDefinition.newBuilder() to construct.
    private ColumnDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ColumnDefinition() {
      visualSize_ = 0;
      title_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ColumnDefinition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder subBuilder = null;
              if (binding_ != null) {
                subBuilder = binding_.toBuilder();
              }
              binding_ = input.readMessage(org.roylance.yaclib.YaclibViewmodel.BindingDefinition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(binding_);
                binding_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              visualSize_ = rawValue;
              break;
            }
            case 26: {
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder subBuilder = null;
              if (show_ != null) {
                subBuilder = show_.toBuilder();
              }
              show_ = input.readMessage(org.roylance.yaclib.YaclibViewmodel.BindingDefinition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(show_);
                show_ = subBuilder.buildPartial();
              }

              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              title_ = s;
              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ColumnDefinition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ColumnDefinition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.roylance.yaclib.YaclibView.ColumnDefinition.class, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder.class);
    }

    public static final int BINDING_FIELD_NUMBER = 1;
    private org.roylance.yaclib.YaclibViewmodel.BindingDefinition binding_;
    /**
     * .org.roylance.yaclib.BindingDefinition binding = 1;
     */
    public boolean hasBinding() {
      return binding_ != null;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition binding = 1;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getBinding() {
      return binding_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : binding_;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition binding = 1;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getBindingOrBuilder() {
      return getBinding();
    }

    public static final int VISUAL_SIZE_FIELD_NUMBER = 2;
    private int visualSize_;
    /**
     * .org.roylance.yaclib.VisualSize visual_size = 2;
     */
    public int getVisualSizeValue() {
      return visualSize_;
    }
    /**
     * .org.roylance.yaclib.VisualSize visual_size = 2;
     */
    public org.roylance.yaclib.YaclibView.VisualSize getVisualSize() {
      @SuppressWarnings("deprecation")
      org.roylance.yaclib.YaclibView.VisualSize result = org.roylance.yaclib.YaclibView.VisualSize.valueOf(visualSize_);
      return result == null ? org.roylance.yaclib.YaclibView.VisualSize.UNRECOGNIZED : result;
    }

    public static final int SHOW_FIELD_NUMBER = 3;
    private org.roylance.yaclib.YaclibViewmodel.BindingDefinition show_;
    /**
     * .org.roylance.yaclib.BindingDefinition show = 3;
     */
    public boolean hasShow() {
      return show_ != null;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition show = 3;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow() {
      return show_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition show = 3;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder() {
      return getShow();
    }

    public static final int TITLE_FIELD_NUMBER = 4;
    private volatile java.lang.Object title_;
    /**
     * string title = 4;
     */
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        title_ = s;
        return s;
      }
    }
    /**
     * string title = 4;
     */
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (binding_ != null) {
        output.writeMessage(1, getBinding());
      }
      if (visualSize_ != org.roylance.yaclib.YaclibView.VisualSize.PARAGRAPH.getNumber()) {
        output.writeEnum(2, visualSize_);
      }
      if (show_ != null) {
        output.writeMessage(3, getShow());
      }
      if (!getTitleBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, title_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (binding_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getBinding());
      }
      if (visualSize_ != org.roylance.yaclib.YaclibView.VisualSize.PARAGRAPH.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, visualSize_);
      }
      if (show_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getShow());
      }
      if (!getTitleBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, title_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.roylance.yaclib.YaclibView.ColumnDefinition)) {
        return super.equals(obj);
      }
      org.roylance.yaclib.YaclibView.ColumnDefinition other = (org.roylance.yaclib.YaclibView.ColumnDefinition) obj;

      boolean result = true;
      result = result && (hasBinding() == other.hasBinding());
      if (hasBinding()) {
        result = result && getBinding()
            .equals(other.getBinding());
      }
      result = result && visualSize_ == other.visualSize_;
      result = result && (hasShow() == other.hasShow());
      if (hasShow()) {
        result = result && getShow()
            .equals(other.getShow());
      }
      result = result && getTitle()
          .equals(other.getTitle());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBinding()) {
        hash = (37 * hash) + BINDING_FIELD_NUMBER;
        hash = (53 * hash) + getBinding().hashCode();
      }
      hash = (37 * hash) + VISUAL_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + visualSize_;
      if (hasShow()) {
        hash = (37 * hash) + SHOW_FIELD_NUMBER;
        hash = (53 * hash) + getShow().hashCode();
      }
      hash = (37 * hash) + TITLE_FIELD_NUMBER;
      hash = (53 * hash) + getTitle().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.ColumnDefinition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.roylance.yaclib.YaclibView.ColumnDefinition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.roylance.yaclib.ColumnDefinition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.roylance.yaclib.ColumnDefinition)
        org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ColumnDefinition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ColumnDefinition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.roylance.yaclib.YaclibView.ColumnDefinition.class, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder.class);
      }

      // Construct using org.roylance.yaclib.YaclibView.ColumnDefinition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (bindingBuilder_ == null) {
          binding_ = null;
        } else {
          binding_ = null;
          bindingBuilder_ = null;
        }
        visualSize_ = 0;

        if (showBuilder_ == null) {
          show_ = null;
        } else {
          show_ = null;
          showBuilder_ = null;
        }
        title_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ColumnDefinition_descriptor;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.ColumnDefinition getDefaultInstanceForType() {
        return org.roylance.yaclib.YaclibView.ColumnDefinition.getDefaultInstance();
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.ColumnDefinition build() {
        org.roylance.yaclib.YaclibView.ColumnDefinition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.ColumnDefinition buildPartial() {
        org.roylance.yaclib.YaclibView.ColumnDefinition result = new org.roylance.yaclib.YaclibView.ColumnDefinition(this);
        if (bindingBuilder_ == null) {
          result.binding_ = binding_;
        } else {
          result.binding_ = bindingBuilder_.build();
        }
        result.visualSize_ = visualSize_;
        if (showBuilder_ == null) {
          result.show_ = show_;
        } else {
          result.show_ = showBuilder_.build();
        }
        result.title_ = title_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.roylance.yaclib.YaclibView.ColumnDefinition) {
          return mergeFrom((org.roylance.yaclib.YaclibView.ColumnDefinition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.roylance.yaclib.YaclibView.ColumnDefinition other) {
        if (other == org.roylance.yaclib.YaclibView.ColumnDefinition.getDefaultInstance()) return this;
        if (other.hasBinding()) {
          mergeBinding(other.getBinding());
        }
        if (other.visualSize_ != 0) {
          setVisualSizeValue(other.getVisualSizeValue());
        }
        if (other.hasShow()) {
          mergeShow(other.getShow());
        }
        if (!other.getTitle().isEmpty()) {
          title_ = other.title_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.roylance.yaclib.YaclibView.ColumnDefinition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.roylance.yaclib.YaclibView.ColumnDefinition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private org.roylance.yaclib.YaclibViewmodel.BindingDefinition binding_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder> bindingBuilder_;
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public boolean hasBinding() {
        return bindingBuilder_ != null || binding_ != null;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getBinding() {
        if (bindingBuilder_ == null) {
          return binding_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : binding_;
        } else {
          return bindingBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public Builder setBinding(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (bindingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          binding_ = value;
          onChanged();
        } else {
          bindingBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public Builder setBinding(
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder builderForValue) {
        if (bindingBuilder_ == null) {
          binding_ = builderForValue.build();
          onChanged();
        } else {
          bindingBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public Builder mergeBinding(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (bindingBuilder_ == null) {
          if (binding_ != null) {
            binding_ =
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.newBuilder(binding_).mergeFrom(value).buildPartial();
          } else {
            binding_ = value;
          }
          onChanged();
        } else {
          bindingBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public Builder clearBinding() {
        if (bindingBuilder_ == null) {
          binding_ = null;
          onChanged();
        } else {
          binding_ = null;
          bindingBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder getBindingBuilder() {

        onChanged();
        return getBindingFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getBindingOrBuilder() {
        if (bindingBuilder_ != null) {
          return bindingBuilder_.getMessageOrBuilder();
        } else {
          return binding_ == null ?
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : binding_;
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition binding = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>
          getBindingFieldBuilder() {
        if (bindingBuilder_ == null) {
          bindingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>(
                  getBinding(),
                  getParentForChildren(),
                  isClean());
          binding_ = null;
        }
        return bindingBuilder_;
      }

      private int visualSize_ = 0;
      /**
       * .org.roylance.yaclib.VisualSize visual_size = 2;
       */
      public int getVisualSizeValue() {
        return visualSize_;
      }
      /**
       * .org.roylance.yaclib.VisualSize visual_size = 2;
       */
      public Builder setVisualSizeValue(int value) {
        visualSize_ = value;
        onChanged();
        return this;
      }
      /**
       * .org.roylance.yaclib.VisualSize visual_size = 2;
       */
      public org.roylance.yaclib.YaclibView.VisualSize getVisualSize() {
        @SuppressWarnings("deprecation")
        org.roylance.yaclib.YaclibView.VisualSize result = org.roylance.yaclib.YaclibView.VisualSize.valueOf(visualSize_);
        return result == null ? org.roylance.yaclib.YaclibView.VisualSize.UNRECOGNIZED : result;
      }
      /**
       * .org.roylance.yaclib.VisualSize visual_size = 2;
       */
      public Builder setVisualSize(org.roylance.yaclib.YaclibView.VisualSize value) {
        if (value == null) {
          throw new NullPointerException();
        }

        visualSize_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .org.roylance.yaclib.VisualSize visual_size = 2;
       */
      public Builder clearVisualSize() {

        visualSize_ = 0;
        onChanged();
        return this;
      }

      private org.roylance.yaclib.YaclibViewmodel.BindingDefinition show_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder> showBuilder_;
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public boolean hasShow() {
        return showBuilder_ != null || show_ != null;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow() {
        if (showBuilder_ == null) {
          return show_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
        } else {
          return showBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public Builder setShow(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (showBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          show_ = value;
          onChanged();
        } else {
          showBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public Builder setShow(
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder builderForValue) {
        if (showBuilder_ == null) {
          show_ = builderForValue.build();
          onChanged();
        } else {
          showBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public Builder mergeShow(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (showBuilder_ == null) {
          if (show_ != null) {
            show_ =
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.newBuilder(show_).mergeFrom(value).buildPartial();
          } else {
            show_ = value;
          }
          onChanged();
        } else {
          showBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public Builder clearShow() {
        if (showBuilder_ == null) {
          show_ = null;
          onChanged();
        } else {
          show_ = null;
          showBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder getShowBuilder() {

        onChanged();
        return getShowFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder() {
        if (showBuilder_ != null) {
          return showBuilder_.getMessageOrBuilder();
        } else {
          return show_ == null ?
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>
          getShowFieldBuilder() {
        if (showBuilder_ == null) {
          showBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>(
                  getShow(),
                  getParentForChildren(),
                  isClean());
          show_ = null;
        }
        return showBuilder_;
      }

      private java.lang.Object title_ = "";
      /**
       * string title = 4;
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string title = 4;
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string title = 4;
       */
      public Builder setTitle(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }

        title_ = value;
        onChanged();
        return this;
      }
      /**
       * string title = 4;
       */
      public Builder clearTitle() {

        title_ = getDefaultInstance().getTitle();
        onChanged();
        return this;
      }
      /**
       * string title = 4;
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);

        title_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:org.roylance.yaclib.ColumnDefinition)
    }

    // @@protoc_insertion_point(class_scope:org.roylance.yaclib.ColumnDefinition)
    private static final org.roylance.yaclib.YaclibView.ColumnDefinition DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.roylance.yaclib.YaclibView.ColumnDefinition();
    }

    public static org.roylance.yaclib.YaclibView.ColumnDefinition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ColumnDefinition>
        PARSER = new com.google.protobuf.AbstractParser<ColumnDefinition>() {
      @java.lang.Override
      public ColumnDefinition parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ColumnDefinition(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ColumnDefinition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ColumnDefinition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.roylance.yaclib.YaclibView.ColumnDefinition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RowDefinitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.roylance.yaclib.RowDefinition)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    java.util.List<org.roylance.yaclib.YaclibView.ColumnDefinition>
        getColumnsList();
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    org.roylance.yaclib.YaclibView.ColumnDefinition getColumns(int index);
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    int getColumnsCount();
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    java.util.List<? extends org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder>
        getColumnsOrBuilderList();
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder getColumnsOrBuilder(
        int index);

    /**
     * .org.roylance.yaclib.BindingDefinition show = 2;
     */
    boolean hasShow();
    /**
     * .org.roylance.yaclib.BindingDefinition show = 2;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow();
    /**
     * .org.roylance.yaclib.BindingDefinition show = 2;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder();
  }
  /**
   * Protobuf type {@code org.roylance.yaclib.RowDefinition}
   */
  public  static final class RowDefinition extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.roylance.yaclib.RowDefinition)
      RowDefinitionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RowDefinition.newBuilder() to construct.
    private RowDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RowDefinition() {
      columns_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RowDefinition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                columns_ = new java.util.ArrayList<org.roylance.yaclib.YaclibView.ColumnDefinition>();
                mutable_bitField0_ |= 0x00000001;
              }
              columns_.add(
                  input.readMessage(org.roylance.yaclib.YaclibView.ColumnDefinition.parser(), extensionRegistry));
              break;
            }
            case 18: {
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder subBuilder = null;
              if (show_ != null) {
                subBuilder = show_.toBuilder();
              }
              show_ = input.readMessage(org.roylance.yaclib.YaclibViewmodel.BindingDefinition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(show_);
                show_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          columns_ = java.util.Collections.unmodifiableList(columns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_RowDefinition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_RowDefinition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.roylance.yaclib.YaclibView.RowDefinition.class, org.roylance.yaclib.YaclibView.RowDefinition.Builder.class);
    }

    private int bitField0_;
    public static final int COLUMNS_FIELD_NUMBER = 1;
    private java.util.List<org.roylance.yaclib.YaclibView.ColumnDefinition> columns_;
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    public java.util.List<org.roylance.yaclib.YaclibView.ColumnDefinition> getColumnsList() {
      return columns_;
    }
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    public java.util.List<? extends org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder>
        getColumnsOrBuilderList() {
      return columns_;
    }
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    public int getColumnsCount() {
      return columns_.size();
    }
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    public org.roylance.yaclib.YaclibView.ColumnDefinition getColumns(int index) {
      return columns_.get(index);
    }
    /**
     * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
     */
    public org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder getColumnsOrBuilder(
        int index) {
      return columns_.get(index);
    }

    public static final int SHOW_FIELD_NUMBER = 2;
    private org.roylance.yaclib.YaclibViewmodel.BindingDefinition show_;
    /**
     * .org.roylance.yaclib.BindingDefinition show = 2;
     */
    public boolean hasShow() {
      return show_ != null;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition show = 2;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow() {
      return show_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition show = 2;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder() {
      return getShow();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < columns_.size(); i++) {
        output.writeMessage(1, columns_.get(i));
      }
      if (show_ != null) {
        output.writeMessage(2, getShow());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < columns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, columns_.get(i));
      }
      if (show_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getShow());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.roylance.yaclib.YaclibView.RowDefinition)) {
        return super.equals(obj);
      }
      org.roylance.yaclib.YaclibView.RowDefinition other = (org.roylance.yaclib.YaclibView.RowDefinition) obj;

      boolean result = true;
      result = result && getColumnsList()
          .equals(other.getColumnsList());
      result = result && (hasShow() == other.hasShow());
      if (hasShow()) {
        result = result && getShow()
            .equals(other.getShow());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getColumnsCount() > 0) {
        hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsList().hashCode();
      }
      if (hasShow()) {
        hash = (37 * hash) + SHOW_FIELD_NUMBER;
        hash = (53 * hash) + getShow().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.RowDefinition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.roylance.yaclib.YaclibView.RowDefinition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.roylance.yaclib.RowDefinition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.roylance.yaclib.RowDefinition)
        org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_RowDefinition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_RowDefinition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.roylance.yaclib.YaclibView.RowDefinition.class, org.roylance.yaclib.YaclibView.RowDefinition.Builder.class);
      }

      // Construct using org.roylance.yaclib.YaclibView.RowDefinition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getColumnsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          columnsBuilder_.clear();
        }
        if (showBuilder_ == null) {
          show_ = null;
        } else {
          show_ = null;
          showBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_RowDefinition_descriptor;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.RowDefinition getDefaultInstanceForType() {
        return org.roylance.yaclib.YaclibView.RowDefinition.getDefaultInstance();
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.RowDefinition build() {
        org.roylance.yaclib.YaclibView.RowDefinition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.RowDefinition buildPartial() {
        org.roylance.yaclib.YaclibView.RowDefinition result = new org.roylance.yaclib.YaclibView.RowDefinition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (columnsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            columns_ = java.util.Collections.unmodifiableList(columns_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.columns_ = columns_;
        } else {
          result.columns_ = columnsBuilder_.build();
        }
        if (showBuilder_ == null) {
          result.show_ = show_;
        } else {
          result.show_ = showBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.roylance.yaclib.YaclibView.RowDefinition) {
          return mergeFrom((org.roylance.yaclib.YaclibView.RowDefinition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.roylance.yaclib.YaclibView.RowDefinition other) {
        if (other == org.roylance.yaclib.YaclibView.RowDefinition.getDefaultInstance()) return this;
        if (columnsBuilder_ == null) {
          if (!other.columns_.isEmpty()) {
            if (columns_.isEmpty()) {
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureColumnsIsMutable();
              columns_.addAll(other.columns_);
            }
            onChanged();
          }
        } else {
          if (!other.columns_.isEmpty()) {
            if (columnsBuilder_.isEmpty()) {
              columnsBuilder_.dispose();
              columnsBuilder_ = null;
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000001);
              columnsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnsFieldBuilder() : null;
            } else {
              columnsBuilder_.addAllMessages(other.columns_);
            }
          }
        }
        if (other.hasShow()) {
          mergeShow(other.getShow());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.roylance.yaclib.YaclibView.RowDefinition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.roylance.yaclib.YaclibView.RowDefinition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<org.roylance.yaclib.YaclibView.ColumnDefinition> columns_ =
        java.util.Collections.emptyList();
      private void ensureColumnsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          columns_ = new java.util.ArrayList<org.roylance.yaclib.YaclibView.ColumnDefinition>(columns_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ColumnDefinition, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder, org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder> columnsBuilder_;

      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public java.util.List<org.roylance.yaclib.YaclibView.ColumnDefinition> getColumnsList() {
        if (columnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columns_);
        } else {
          return columnsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public int getColumnsCount() {
        if (columnsBuilder_ == null) {
          return columns_.size();
        } else {
          return columnsBuilder_.getCount();
        }
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public org.roylance.yaclib.YaclibView.ColumnDefinition getColumns(int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);
        } else {
          return columnsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder setColumns(
          int index, org.roylance.yaclib.YaclibView.ColumnDefinition value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.set(index, value);
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder setColumns(
          int index, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder addColumns(org.roylance.yaclib.YaclibView.ColumnDefinition value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder addColumns(
          int index, org.roylance.yaclib.YaclibView.ColumnDefinition value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(index, value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder addColumns(
          org.roylance.yaclib.YaclibView.ColumnDefinition.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder addColumns(
          int index, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder addAllColumns(
          java.lang.Iterable<? extends org.roylance.yaclib.YaclibView.ColumnDefinition> values) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, columns_);
          onChanged();
        } else {
          columnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder clearColumns() {
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          columnsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public Builder removeColumns(int index) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.remove(index);
          onChanged();
        } else {
          columnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public org.roylance.yaclib.YaclibView.ColumnDefinition.Builder getColumnsBuilder(
          int index) {
        return getColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder getColumnsOrBuilder(
          int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);  } else {
          return columnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public java.util.List<? extends org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder>
           getColumnsOrBuilderList() {
        if (columnsBuilder_ != null) {
          return columnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columns_);
        }
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public org.roylance.yaclib.YaclibView.ColumnDefinition.Builder addColumnsBuilder() {
        return getColumnsFieldBuilder().addBuilder(
            org.roylance.yaclib.YaclibView.ColumnDefinition.getDefaultInstance());
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public org.roylance.yaclib.YaclibView.ColumnDefinition.Builder addColumnsBuilder(
          int index) {
        return getColumnsFieldBuilder().addBuilder(
            index, org.roylance.yaclib.YaclibView.ColumnDefinition.getDefaultInstance());
      }
      /**
       * repeated .org.roylance.yaclib.ColumnDefinition columns = 1;
       */
      public java.util.List<org.roylance.yaclib.YaclibView.ColumnDefinition.Builder>
           getColumnsBuilderList() {
        return getColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ColumnDefinition, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder, org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder>
          getColumnsFieldBuilder() {
        if (columnsBuilder_ == null) {
          columnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.roylance.yaclib.YaclibView.ColumnDefinition, org.roylance.yaclib.YaclibView.ColumnDefinition.Builder, org.roylance.yaclib.YaclibView.ColumnDefinitionOrBuilder>(
                  columns_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          columns_ = null;
        }
        return columnsBuilder_;
      }

      private org.roylance.yaclib.YaclibViewmodel.BindingDefinition show_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder> showBuilder_;
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public boolean hasShow() {
        return showBuilder_ != null || show_ != null;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow() {
        if (showBuilder_ == null) {
          return show_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
        } else {
          return showBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public Builder setShow(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (showBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          show_ = value;
          onChanged();
        } else {
          showBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public Builder setShow(
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder builderForValue) {
        if (showBuilder_ == null) {
          show_ = builderForValue.build();
          onChanged();
        } else {
          showBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public Builder mergeShow(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (showBuilder_ == null) {
          if (show_ != null) {
            show_ =
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.newBuilder(show_).mergeFrom(value).buildPartial();
          } else {
            show_ = value;
          }
          onChanged();
        } else {
          showBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public Builder clearShow() {
        if (showBuilder_ == null) {
          show_ = null;
          onChanged();
        } else {
          show_ = null;
          showBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder getShowBuilder() {

        onChanged();
        return getShowFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder() {
        if (showBuilder_ != null) {
          return showBuilder_.getMessageOrBuilder();
        } else {
          return show_ == null ?
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>
          getShowFieldBuilder() {
        if (showBuilder_ == null) {
          showBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>(
                  getShow(),
                  getParentForChildren(),
                  isClean());
          show_ = null;
        }
        return showBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:org.roylance.yaclib.RowDefinition)
    }

    // @@protoc_insertion_point(class_scope:org.roylance.yaclib.RowDefinition)
    private static final org.roylance.yaclib.YaclibView.RowDefinition DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.roylance.yaclib.YaclibView.RowDefinition();
    }

    public static org.roylance.yaclib.YaclibView.RowDefinition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RowDefinition>
        PARSER = new com.google.protobuf.AbstractParser<RowDefinition>() {
      @java.lang.Override
      public RowDefinition parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RowDefinition(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RowDefinition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RowDefinition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.roylance.yaclib.YaclibView.RowDefinition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ViewDefinitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.roylance.yaclib.ViewDefinition)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .org.roylance.yaclib.ViewType view_type = 1;
     */
    int getViewTypeValue();
    /**
     * .org.roylance.yaclib.ViewType view_type = 1;
     */
    org.roylance.yaclib.YaclibView.ViewType getViewType();

    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    java.util.List<org.roylance.yaclib.YaclibView.ViewDefinition>
        getViewsList();
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    org.roylance.yaclib.YaclibView.ViewDefinition getViews(int index);
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    int getViewsCount();
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    java.util.List<? extends org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>
        getViewsOrBuilderList();
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getViewsOrBuilder(
        int index);

    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    java.util.List<org.roylance.yaclib.YaclibView.RowDefinition>
        getRowsList();
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    org.roylance.yaclib.YaclibView.RowDefinition getRows(int index);
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    int getRowsCount();
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    java.util.List<? extends org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder>
        getRowsOrBuilderList();
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder getRowsOrBuilder(
        int index);

    /**
     * .org.roylance.yaclib.BindingDefinition show = 4;
     */
    boolean hasShow();
    /**
     * .org.roylance.yaclib.BindingDefinition show = 4;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow();
    /**
     * .org.roylance.yaclib.BindingDefinition show = 4;
     */
    org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder();

    /**
     * .org.roylance.yaclib.ViewModel view_model = 5;
     */
    boolean hasViewModel();
    /**
     * .org.roylance.yaclib.ViewModel view_model = 5;
     */
    org.roylance.yaclib.YaclibViewmodel.ViewModel getViewModel();
    /**
     * .org.roylance.yaclib.ViewModel view_model = 5;
     */
    org.roylance.yaclib.YaclibViewmodel.ViewModelOrBuilder getViewModelOrBuilder();
  }
  /**
   * Protobuf type {@code org.roylance.yaclib.ViewDefinition}
   */
  public  static final class ViewDefinition extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.roylance.yaclib.ViewDefinition)
      ViewDefinitionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ViewDefinition.newBuilder() to construct.
    private ViewDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ViewDefinition() {
      viewType_ = 0;
      views_ = java.util.Collections.emptyList();
      rows_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ViewDefinition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();

              viewType_ = rawValue;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                views_ = new java.util.ArrayList<org.roylance.yaclib.YaclibView.ViewDefinition>();
                mutable_bitField0_ |= 0x00000002;
              }
              views_.add(
                  input.readMessage(org.roylance.yaclib.YaclibView.ViewDefinition.parser(), extensionRegistry));
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                rows_ = new java.util.ArrayList<org.roylance.yaclib.YaclibView.RowDefinition>();
                mutable_bitField0_ |= 0x00000004;
              }
              rows_.add(
                  input.readMessage(org.roylance.yaclib.YaclibView.RowDefinition.parser(), extensionRegistry));
              break;
            }
            case 34: {
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder subBuilder = null;
              if (show_ != null) {
                subBuilder = show_.toBuilder();
              }
              show_ = input.readMessage(org.roylance.yaclib.YaclibViewmodel.BindingDefinition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(show_);
                show_ = subBuilder.buildPartial();
              }

              break;
            }
            case 42: {
              org.roylance.yaclib.YaclibViewmodel.ViewModel.Builder subBuilder = null;
              if (viewModel_ != null) {
                subBuilder = viewModel_.toBuilder();
              }
              viewModel_ = input.readMessage(org.roylance.yaclib.YaclibViewmodel.ViewModel.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(viewModel_);
                viewModel_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          views_ = java.util.Collections.unmodifiableList(views_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          rows_ = java.util.Collections.unmodifiableList(rows_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ViewDefinition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ViewDefinition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.roylance.yaclib.YaclibView.ViewDefinition.class, org.roylance.yaclib.YaclibView.ViewDefinition.Builder.class);
    }

    private int bitField0_;
    public static final int VIEW_TYPE_FIELD_NUMBER = 1;
    private int viewType_;
    /**
     * .org.roylance.yaclib.ViewType view_type = 1;
     */
    public int getViewTypeValue() {
      return viewType_;
    }
    /**
     * .org.roylance.yaclib.ViewType view_type = 1;
     */
    public org.roylance.yaclib.YaclibView.ViewType getViewType() {
      @SuppressWarnings("deprecation")
      org.roylance.yaclib.YaclibView.ViewType result = org.roylance.yaclib.YaclibView.ViewType.valueOf(viewType_);
      return result == null ? org.roylance.yaclib.YaclibView.ViewType.UNRECOGNIZED : result;
    }

    public static final int VIEWS_FIELD_NUMBER = 2;
    private java.util.List<org.roylance.yaclib.YaclibView.ViewDefinition> views_;
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    public java.util.List<org.roylance.yaclib.YaclibView.ViewDefinition> getViewsList() {
      return views_;
    }
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    public java.util.List<? extends org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>
        getViewsOrBuilderList() {
      return views_;
    }
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    public int getViewsCount() {
      return views_.size();
    }
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    public org.roylance.yaclib.YaclibView.ViewDefinition getViews(int index) {
      return views_.get(index);
    }
    /**
     * repeated .org.roylance.yaclib.ViewDefinition views = 2;
     */
    public org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getViewsOrBuilder(
        int index) {
      return views_.get(index);
    }

    public static final int ROWS_FIELD_NUMBER = 3;
    private java.util.List<org.roylance.yaclib.YaclibView.RowDefinition> rows_;
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    public java.util.List<org.roylance.yaclib.YaclibView.RowDefinition> getRowsList() {
      return rows_;
    }
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    public java.util.List<? extends org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder>
        getRowsOrBuilderList() {
      return rows_;
    }
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    public int getRowsCount() {
      return rows_.size();
    }
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    public org.roylance.yaclib.YaclibView.RowDefinition getRows(int index) {
      return rows_.get(index);
    }
    /**
     * repeated .org.roylance.yaclib.RowDefinition rows = 3;
     */
    public org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder getRowsOrBuilder(
        int index) {
      return rows_.get(index);
    }

    public static final int SHOW_FIELD_NUMBER = 4;
    private org.roylance.yaclib.YaclibViewmodel.BindingDefinition show_;
    /**
     * .org.roylance.yaclib.BindingDefinition show = 4;
     */
    public boolean hasShow() {
      return show_ != null;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition show = 4;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow() {
      return show_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
    }
    /**
     * .org.roylance.yaclib.BindingDefinition show = 4;
     */
    public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder() {
      return getShow();
    }

    public static final int VIEW_MODEL_FIELD_NUMBER = 5;
    private org.roylance.yaclib.YaclibViewmodel.ViewModel viewModel_;
    /**
     * .org.roylance.yaclib.ViewModel view_model = 5;
     */
    public boolean hasViewModel() {
      return viewModel_ != null;
    }
    /**
     * .org.roylance.yaclib.ViewModel view_model = 5;
     */
    public org.roylance.yaclib.YaclibViewmodel.ViewModel getViewModel() {
      return viewModel_ == null ? org.roylance.yaclib.YaclibViewmodel.ViewModel.getDefaultInstance() : viewModel_;
    }
    /**
     * .org.roylance.yaclib.ViewModel view_model = 5;
     */
    public org.roylance.yaclib.YaclibViewmodel.ViewModelOrBuilder getViewModelOrBuilder() {
      return getViewModel();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (viewType_ != org.roylance.yaclib.YaclibView.ViewType.CONTAINER.getNumber()) {
        output.writeEnum(1, viewType_);
      }
      for (int i = 0; i < views_.size(); i++) {
        output.writeMessage(2, views_.get(i));
      }
      for (int i = 0; i < rows_.size(); i++) {
        output.writeMessage(3, rows_.get(i));
      }
      if (show_ != null) {
        output.writeMessage(4, getShow());
      }
      if (viewModel_ != null) {
        output.writeMessage(5, getViewModel());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (viewType_ != org.roylance.yaclib.YaclibView.ViewType.CONTAINER.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, viewType_);
      }
      for (int i = 0; i < views_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, views_.get(i));
      }
      for (int i = 0; i < rows_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, rows_.get(i));
      }
      if (show_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getShow());
      }
      if (viewModel_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getViewModel());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.roylance.yaclib.YaclibView.ViewDefinition)) {
        return super.equals(obj);
      }
      org.roylance.yaclib.YaclibView.ViewDefinition other = (org.roylance.yaclib.YaclibView.ViewDefinition) obj;

      boolean result = true;
      result = result && viewType_ == other.viewType_;
      result = result && getViewsList()
          .equals(other.getViewsList());
      result = result && getRowsList()
          .equals(other.getRowsList());
      result = result && (hasShow() == other.hasShow());
      if (hasShow()) {
        result = result && getShow()
            .equals(other.getShow());
      }
      result = result && (hasViewModel() == other.hasViewModel());
      if (hasViewModel()) {
        result = result && getViewModel()
            .equals(other.getViewModel());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VIEW_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + viewType_;
      if (getViewsCount() > 0) {
        hash = (37 * hash) + VIEWS_FIELD_NUMBER;
        hash = (53 * hash) + getViewsList().hashCode();
      }
      if (getRowsCount() > 0) {
        hash = (37 * hash) + ROWS_FIELD_NUMBER;
        hash = (53 * hash) + getRowsList().hashCode();
      }
      if (hasShow()) {
        hash = (37 * hash) + SHOW_FIELD_NUMBER;
        hash = (53 * hash) + getShow().hashCode();
      }
      if (hasViewModel()) {
        hash = (37 * hash) + VIEW_MODEL_FIELD_NUMBER;
        hash = (53 * hash) + getViewModel().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.ViewDefinition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.roylance.yaclib.YaclibView.ViewDefinition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.roylance.yaclib.ViewDefinition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.roylance.yaclib.ViewDefinition)
        org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ViewDefinition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ViewDefinition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.roylance.yaclib.YaclibView.ViewDefinition.class, org.roylance.yaclib.YaclibView.ViewDefinition.Builder.class);
      }

      // Construct using org.roylance.yaclib.YaclibView.ViewDefinition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getViewsFieldBuilder();
          getRowsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        viewType_ = 0;

        if (viewsBuilder_ == null) {
          views_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          viewsBuilder_.clear();
        }
        if (rowsBuilder_ == null) {
          rows_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          rowsBuilder_.clear();
        }
        if (showBuilder_ == null) {
          show_ = null;
        } else {
          show_ = null;
          showBuilder_ = null;
        }
        if (viewModelBuilder_ == null) {
          viewModel_ = null;
        } else {
          viewModel_ = null;
          viewModelBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_ViewDefinition_descriptor;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.ViewDefinition getDefaultInstanceForType() {
        return org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance();
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.ViewDefinition build() {
        org.roylance.yaclib.YaclibView.ViewDefinition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.ViewDefinition buildPartial() {
        org.roylance.yaclib.YaclibView.ViewDefinition result = new org.roylance.yaclib.YaclibView.ViewDefinition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.viewType_ = viewType_;
        if (viewsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            views_ = java.util.Collections.unmodifiableList(views_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.views_ = views_;
        } else {
          result.views_ = viewsBuilder_.build();
        }
        if (rowsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            rows_ = java.util.Collections.unmodifiableList(rows_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.rows_ = rows_;
        } else {
          result.rows_ = rowsBuilder_.build();
        }
        if (showBuilder_ == null) {
          result.show_ = show_;
        } else {
          result.show_ = showBuilder_.build();
        }
        if (viewModelBuilder_ == null) {
          result.viewModel_ = viewModel_;
        } else {
          result.viewModel_ = viewModelBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.roylance.yaclib.YaclibView.ViewDefinition) {
          return mergeFrom((org.roylance.yaclib.YaclibView.ViewDefinition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.roylance.yaclib.YaclibView.ViewDefinition other) {
        if (other == org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance()) return this;
        if (other.viewType_ != 0) {
          setViewTypeValue(other.getViewTypeValue());
        }
        if (viewsBuilder_ == null) {
          if (!other.views_.isEmpty()) {
            if (views_.isEmpty()) {
              views_ = other.views_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureViewsIsMutable();
              views_.addAll(other.views_);
            }
            onChanged();
          }
        } else {
          if (!other.views_.isEmpty()) {
            if (viewsBuilder_.isEmpty()) {
              viewsBuilder_.dispose();
              viewsBuilder_ = null;
              views_ = other.views_;
              bitField0_ = (bitField0_ & ~0x00000002);
              viewsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getViewsFieldBuilder() : null;
            } else {
              viewsBuilder_.addAllMessages(other.views_);
            }
          }
        }
        if (rowsBuilder_ == null) {
          if (!other.rows_.isEmpty()) {
            if (rows_.isEmpty()) {
              rows_ = other.rows_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureRowsIsMutable();
              rows_.addAll(other.rows_);
            }
            onChanged();
          }
        } else {
          if (!other.rows_.isEmpty()) {
            if (rowsBuilder_.isEmpty()) {
              rowsBuilder_.dispose();
              rowsBuilder_ = null;
              rows_ = other.rows_;
              bitField0_ = (bitField0_ & ~0x00000004);
              rowsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRowsFieldBuilder() : null;
            } else {
              rowsBuilder_.addAllMessages(other.rows_);
            }
          }
        }
        if (other.hasShow()) {
          mergeShow(other.getShow());
        }
        if (other.hasViewModel()) {
          mergeViewModel(other.getViewModel());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.roylance.yaclib.YaclibView.ViewDefinition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.roylance.yaclib.YaclibView.ViewDefinition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int viewType_ = 0;
      /**
       * .org.roylance.yaclib.ViewType view_type = 1;
       */
      public int getViewTypeValue() {
        return viewType_;
      }
      /**
       * .org.roylance.yaclib.ViewType view_type = 1;
       */
      public Builder setViewTypeValue(int value) {
        viewType_ = value;
        onChanged();
        return this;
      }
      /**
       * .org.roylance.yaclib.ViewType view_type = 1;
       */
      public org.roylance.yaclib.YaclibView.ViewType getViewType() {
        @SuppressWarnings("deprecation")
        org.roylance.yaclib.YaclibView.ViewType result = org.roylance.yaclib.YaclibView.ViewType.valueOf(viewType_);
        return result == null ? org.roylance.yaclib.YaclibView.ViewType.UNRECOGNIZED : result;
      }
      /**
       * .org.roylance.yaclib.ViewType view_type = 1;
       */
      public Builder setViewType(org.roylance.yaclib.YaclibView.ViewType value) {
        if (value == null) {
          throw new NullPointerException();
        }

        viewType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .org.roylance.yaclib.ViewType view_type = 1;
       */
      public Builder clearViewType() {

        viewType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.roylance.yaclib.YaclibView.ViewDefinition> views_ =
        java.util.Collections.emptyList();
      private void ensureViewsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          views_ = new java.util.ArrayList<org.roylance.yaclib.YaclibView.ViewDefinition>(views_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder> viewsBuilder_;

      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public java.util.List<org.roylance.yaclib.YaclibView.ViewDefinition> getViewsList() {
        if (viewsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(views_);
        } else {
          return viewsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public int getViewsCount() {
        if (viewsBuilder_ == null) {
          return views_.size();
        } else {
          return viewsBuilder_.getCount();
        }
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition getViews(int index) {
        if (viewsBuilder_ == null) {
          return views_.get(index);
        } else {
          return viewsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder setViews(
          int index, org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (viewsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureViewsIsMutable();
          views_.set(index, value);
          onChanged();
        } else {
          viewsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder setViews(
          int index, org.roylance.yaclib.YaclibView.ViewDefinition.Builder builderForValue) {
        if (viewsBuilder_ == null) {
          ensureViewsIsMutable();
          views_.set(index, builderForValue.build());
          onChanged();
        } else {
          viewsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder addViews(org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (viewsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureViewsIsMutable();
          views_.add(value);
          onChanged();
        } else {
          viewsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder addViews(
          int index, org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (viewsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureViewsIsMutable();
          views_.add(index, value);
          onChanged();
        } else {
          viewsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder addViews(
          org.roylance.yaclib.YaclibView.ViewDefinition.Builder builderForValue) {
        if (viewsBuilder_ == null) {
          ensureViewsIsMutable();
          views_.add(builderForValue.build());
          onChanged();
        } else {
          viewsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder addViews(
          int index, org.roylance.yaclib.YaclibView.ViewDefinition.Builder builderForValue) {
        if (viewsBuilder_ == null) {
          ensureViewsIsMutable();
          views_.add(index, builderForValue.build());
          onChanged();
        } else {
          viewsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder addAllViews(
          java.lang.Iterable<? extends org.roylance.yaclib.YaclibView.ViewDefinition> values) {
        if (viewsBuilder_ == null) {
          ensureViewsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, views_);
          onChanged();
        } else {
          viewsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder clearViews() {
        if (viewsBuilder_ == null) {
          views_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          viewsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public Builder removeViews(int index) {
        if (viewsBuilder_ == null) {
          ensureViewsIsMutable();
          views_.remove(index);
          onChanged();
        } else {
          viewsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition.Builder getViewsBuilder(
          int index) {
        return getViewsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getViewsOrBuilder(
          int index) {
        if (viewsBuilder_ == null) {
          return views_.get(index);  } else {
          return viewsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public java.util.List<? extends org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>
           getViewsOrBuilderList() {
        if (viewsBuilder_ != null) {
          return viewsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(views_);
        }
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition.Builder addViewsBuilder() {
        return getViewsFieldBuilder().addBuilder(
            org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance());
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition.Builder addViewsBuilder(
          int index) {
        return getViewsFieldBuilder().addBuilder(
            index, org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance());
      }
      /**
       * repeated .org.roylance.yaclib.ViewDefinition views = 2;
       */
      public java.util.List<org.roylance.yaclib.YaclibView.ViewDefinition.Builder>
           getViewsBuilderList() {
        return getViewsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>
          getViewsFieldBuilder() {
        if (viewsBuilder_ == null) {
          viewsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>(
                  views_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          views_ = null;
        }
        return viewsBuilder_;
      }

      private java.util.List<org.roylance.yaclib.YaclibView.RowDefinition> rows_ =
        java.util.Collections.emptyList();
      private void ensureRowsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          rows_ = new java.util.ArrayList<org.roylance.yaclib.YaclibView.RowDefinition>(rows_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.roylance.yaclib.YaclibView.RowDefinition, org.roylance.yaclib.YaclibView.RowDefinition.Builder, org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder> rowsBuilder_;

      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public java.util.List<org.roylance.yaclib.YaclibView.RowDefinition> getRowsList() {
        if (rowsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rows_);
        } else {
          return rowsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public int getRowsCount() {
        if (rowsBuilder_ == null) {
          return rows_.size();
        } else {
          return rowsBuilder_.getCount();
        }
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public org.roylance.yaclib.YaclibView.RowDefinition getRows(int index) {
        if (rowsBuilder_ == null) {
          return rows_.get(index);
        } else {
          return rowsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder setRows(
          int index, org.roylance.yaclib.YaclibView.RowDefinition value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsIsMutable();
          rows_.set(index, value);
          onChanged();
        } else {
          rowsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder setRows(
          int index, org.roylance.yaclib.YaclibView.RowDefinition.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.set(index, builderForValue.build());
          onChanged();
        } else {
          rowsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder addRows(org.roylance.yaclib.YaclibView.RowDefinition value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsIsMutable();
          rows_.add(value);
          onChanged();
        } else {
          rowsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder addRows(
          int index, org.roylance.yaclib.YaclibView.RowDefinition value) {
        if (rowsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowsIsMutable();
          rows_.add(index, value);
          onChanged();
        } else {
          rowsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder addRows(
          org.roylance.yaclib.YaclibView.RowDefinition.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.add(builderForValue.build());
          onChanged();
        } else {
          rowsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder addRows(
          int index, org.roylance.yaclib.YaclibView.RowDefinition.Builder builderForValue) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.add(index, builderForValue.build());
          onChanged();
        } else {
          rowsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder addAllRows(
          java.lang.Iterable<? extends org.roylance.yaclib.YaclibView.RowDefinition> values) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rows_);
          onChanged();
        } else {
          rowsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder clearRows() {
        if (rowsBuilder_ == null) {
          rows_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          rowsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public Builder removeRows(int index) {
        if (rowsBuilder_ == null) {
          ensureRowsIsMutable();
          rows_.remove(index);
          onChanged();
        } else {
          rowsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public org.roylance.yaclib.YaclibView.RowDefinition.Builder getRowsBuilder(
          int index) {
        return getRowsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder getRowsOrBuilder(
          int index) {
        if (rowsBuilder_ == null) {
          return rows_.get(index);  } else {
          return rowsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public java.util.List<? extends org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder>
           getRowsOrBuilderList() {
        if (rowsBuilder_ != null) {
          return rowsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rows_);
        }
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public org.roylance.yaclib.YaclibView.RowDefinition.Builder addRowsBuilder() {
        return getRowsFieldBuilder().addBuilder(
            org.roylance.yaclib.YaclibView.RowDefinition.getDefaultInstance());
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public org.roylance.yaclib.YaclibView.RowDefinition.Builder addRowsBuilder(
          int index) {
        return getRowsFieldBuilder().addBuilder(
            index, org.roylance.yaclib.YaclibView.RowDefinition.getDefaultInstance());
      }
      /**
       * repeated .org.roylance.yaclib.RowDefinition rows = 3;
       */
      public java.util.List<org.roylance.yaclib.YaclibView.RowDefinition.Builder>
           getRowsBuilderList() {
        return getRowsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.roylance.yaclib.YaclibView.RowDefinition, org.roylance.yaclib.YaclibView.RowDefinition.Builder, org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder>
          getRowsFieldBuilder() {
        if (rowsBuilder_ == null) {
          rowsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.roylance.yaclib.YaclibView.RowDefinition, org.roylance.yaclib.YaclibView.RowDefinition.Builder, org.roylance.yaclib.YaclibView.RowDefinitionOrBuilder>(
                  rows_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          rows_ = null;
        }
        return rowsBuilder_;
      }

      private org.roylance.yaclib.YaclibViewmodel.BindingDefinition show_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder> showBuilder_;
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public boolean hasShow() {
        return showBuilder_ != null || show_ != null;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition getShow() {
        if (showBuilder_ == null) {
          return show_ == null ? org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
        } else {
          return showBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public Builder setShow(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (showBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          show_ = value;
          onChanged();
        } else {
          showBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public Builder setShow(
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder builderForValue) {
        if (showBuilder_ == null) {
          show_ = builderForValue.build();
          onChanged();
        } else {
          showBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public Builder mergeShow(org.roylance.yaclib.YaclibViewmodel.BindingDefinition value) {
        if (showBuilder_ == null) {
          if (show_ != null) {
            show_ =
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.newBuilder(show_).mergeFrom(value).buildPartial();
          } else {
            show_ = value;
          }
          onChanged();
        } else {
          showBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public Builder clearShow() {
        if (showBuilder_ == null) {
          show_ = null;
          onChanged();
        } else {
          show_ = null;
          showBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder getShowBuilder() {

        onChanged();
        return getShowFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      public org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder getShowOrBuilder() {
        if (showBuilder_ != null) {
          return showBuilder_.getMessageOrBuilder();
        } else {
          return show_ == null ?
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition.getDefaultInstance() : show_;
        }
      }
      /**
       * .org.roylance.yaclib.BindingDefinition show = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>
          getShowFieldBuilder() {
        if (showBuilder_ == null) {
          showBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibViewmodel.BindingDefinition, org.roylance.yaclib.YaclibViewmodel.BindingDefinition.Builder, org.roylance.yaclib.YaclibViewmodel.BindingDefinitionOrBuilder>(
                  getShow(),
                  getParentForChildren(),
                  isClean());
          show_ = null;
        }
        return showBuilder_;
      }

      private org.roylance.yaclib.YaclibViewmodel.ViewModel viewModel_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.ViewModel, org.roylance.yaclib.YaclibViewmodel.ViewModel.Builder, org.roylance.yaclib.YaclibViewmodel.ViewModelOrBuilder> viewModelBuilder_;
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public boolean hasViewModel() {
        return viewModelBuilder_ != null || viewModel_ != null;
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public org.roylance.yaclib.YaclibViewmodel.ViewModel getViewModel() {
        if (viewModelBuilder_ == null) {
          return viewModel_ == null ? org.roylance.yaclib.YaclibViewmodel.ViewModel.getDefaultInstance() : viewModel_;
        } else {
          return viewModelBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public Builder setViewModel(org.roylance.yaclib.YaclibViewmodel.ViewModel value) {
        if (viewModelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          viewModel_ = value;
          onChanged();
        } else {
          viewModelBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public Builder setViewModel(
          org.roylance.yaclib.YaclibViewmodel.ViewModel.Builder builderForValue) {
        if (viewModelBuilder_ == null) {
          viewModel_ = builderForValue.build();
          onChanged();
        } else {
          viewModelBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public Builder mergeViewModel(org.roylance.yaclib.YaclibViewmodel.ViewModel value) {
        if (viewModelBuilder_ == null) {
          if (viewModel_ != null) {
            viewModel_ =
              org.roylance.yaclib.YaclibViewmodel.ViewModel.newBuilder(viewModel_).mergeFrom(value).buildPartial();
          } else {
            viewModel_ = value;
          }
          onChanged();
        } else {
          viewModelBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public Builder clearViewModel() {
        if (viewModelBuilder_ == null) {
          viewModel_ = null;
          onChanged();
        } else {
          viewModel_ = null;
          viewModelBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public org.roylance.yaclib.YaclibViewmodel.ViewModel.Builder getViewModelBuilder() {

        onChanged();
        return getViewModelFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      public org.roylance.yaclib.YaclibViewmodel.ViewModelOrBuilder getViewModelOrBuilder() {
        if (viewModelBuilder_ != null) {
          return viewModelBuilder_.getMessageOrBuilder();
        } else {
          return viewModel_ == null ?
              org.roylance.yaclib.YaclibViewmodel.ViewModel.getDefaultInstance() : viewModel_;
        }
      }
      /**
       * .org.roylance.yaclib.ViewModel view_model = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibViewmodel.ViewModel, org.roylance.yaclib.YaclibViewmodel.ViewModel.Builder, org.roylance.yaclib.YaclibViewmodel.ViewModelOrBuilder>
          getViewModelFieldBuilder() {
        if (viewModelBuilder_ == null) {
          viewModelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibViewmodel.ViewModel, org.roylance.yaclib.YaclibViewmodel.ViewModel.Builder, org.roylance.yaclib.YaclibViewmodel.ViewModelOrBuilder>(
                  getViewModel(),
                  getParentForChildren(),
                  isClean());
          viewModel_ = null;
        }
        return viewModelBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:org.roylance.yaclib.ViewDefinition)
    }

    // @@protoc_insertion_point(class_scope:org.roylance.yaclib.ViewDefinition)
    private static final org.roylance.yaclib.YaclibView.ViewDefinition DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.roylance.yaclib.YaclibView.ViewDefinition();
    }

    public static org.roylance.yaclib.YaclibView.ViewDefinition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ViewDefinition>
        PARSER = new com.google.protobuf.AbstractParser<ViewDefinition>() {
      @java.lang.Override
      public ViewDefinition parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ViewDefinition(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ViewDefinition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ViewDefinition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.roylance.yaclib.YaclibView.ViewDefinition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TransitionDefinitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.roylance.yaclib.TransitionDefinition)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .org.roylance.yaclib.ViewDefinition from = 1;
     */
    boolean hasFrom();
    /**
     * .org.roylance.yaclib.ViewDefinition from = 1;
     */
    org.roylance.yaclib.YaclibView.ViewDefinition getFrom();
    /**
     * .org.roylance.yaclib.ViewDefinition from = 1;
     */
    org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getFromOrBuilder();

    /**
     * .org.roylance.yaclib.ViewDefinition to = 2;
     */
    boolean hasTo();
    /**
     * .org.roylance.yaclib.ViewDefinition to = 2;
     */
    org.roylance.yaclib.YaclibView.ViewDefinition getTo();
    /**
     * .org.roylance.yaclib.ViewDefinition to = 2;
     */
    org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getToOrBuilder();
  }
  /**
   * Protobuf type {@code org.roylance.yaclib.TransitionDefinition}
   */
  public  static final class TransitionDefinition extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.roylance.yaclib.TransitionDefinition)
      TransitionDefinitionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TransitionDefinition.newBuilder() to construct.
    private TransitionDefinition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TransitionDefinition() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TransitionDefinition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              org.roylance.yaclib.YaclibView.ViewDefinition.Builder subBuilder = null;
              if (from_ != null) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(org.roylance.yaclib.YaclibView.ViewDefinition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              org.roylance.yaclib.YaclibView.ViewDefinition.Builder subBuilder = null;
              if (to_ != null) {
                subBuilder = to_.toBuilder();
              }
              to_ = input.readMessage(org.roylance.yaclib.YaclibView.ViewDefinition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(to_);
                to_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_TransitionDefinition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_TransitionDefinition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.roylance.yaclib.YaclibView.TransitionDefinition.class, org.roylance.yaclib.YaclibView.TransitionDefinition.Builder.class);
    }

    public static final int FROM_FIELD_NUMBER = 1;
    private org.roylance.yaclib.YaclibView.ViewDefinition from_;
    /**
     * .org.roylance.yaclib.ViewDefinition from = 1;
     */
    public boolean hasFrom() {
      return from_ != null;
    }
    /**
     * .org.roylance.yaclib.ViewDefinition from = 1;
     */
    public org.roylance.yaclib.YaclibView.ViewDefinition getFrom() {
      return from_ == null ? org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance() : from_;
    }
    /**
     * .org.roylance.yaclib.ViewDefinition from = 1;
     */
    public org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getFromOrBuilder() {
      return getFrom();
    }

    public static final int TO_FIELD_NUMBER = 2;
    private org.roylance.yaclib.YaclibView.ViewDefinition to_;
    /**
     * .org.roylance.yaclib.ViewDefinition to = 2;
     */
    public boolean hasTo() {
      return to_ != null;
    }
    /**
     * .org.roylance.yaclib.ViewDefinition to = 2;
     */
    public org.roylance.yaclib.YaclibView.ViewDefinition getTo() {
      return to_ == null ? org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance() : to_;
    }
    /**
     * .org.roylance.yaclib.ViewDefinition to = 2;
     */
    public org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getToOrBuilder() {
      return getTo();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (from_ != null) {
        output.writeMessage(1, getFrom());
      }
      if (to_ != null) {
        output.writeMessage(2, getTo());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (from_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFrom());
      }
      if (to_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTo());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.roylance.yaclib.YaclibView.TransitionDefinition)) {
        return super.equals(obj);
      }
      org.roylance.yaclib.YaclibView.TransitionDefinition other = (org.roylance.yaclib.YaclibView.TransitionDefinition) obj;

      boolean result = true;
      result = result && (hasFrom() == other.hasFrom());
      if (hasFrom()) {
        result = result && getFrom()
            .equals(other.getFrom());
      }
      result = result && (hasTo() == other.hasTo());
      if (hasTo()) {
        result = result && getTo()
            .equals(other.getTo());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFrom()) {
        hash = (37 * hash) + FROM_FIELD_NUMBER;
        hash = (53 * hash) + getFrom().hashCode();
      }
      if (hasTo()) {
        hash = (37 * hash) + TO_FIELD_NUMBER;
        hash = (53 * hash) + getTo().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.roylance.yaclib.YaclibView.TransitionDefinition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.roylance.yaclib.YaclibView.TransitionDefinition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.roylance.yaclib.TransitionDefinition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.roylance.yaclib.TransitionDefinition)
        org.roylance.yaclib.YaclibView.TransitionDefinitionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_TransitionDefinition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_TransitionDefinition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.roylance.yaclib.YaclibView.TransitionDefinition.class, org.roylance.yaclib.YaclibView.TransitionDefinition.Builder.class);
      }

      // Construct using org.roylance.yaclib.YaclibView.TransitionDefinition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = null;
        } else {
          from_ = null;
          fromBuilder_ = null;
        }
        if (toBuilder_ == null) {
          to_ = null;
        } else {
          to_ = null;
          toBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.roylance.yaclib.YaclibView.internal_static_org_roylance_yaclib_TransitionDefinition_descriptor;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.TransitionDefinition getDefaultInstanceForType() {
        return org.roylance.yaclib.YaclibView.TransitionDefinition.getDefaultInstance();
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.TransitionDefinition build() {
        org.roylance.yaclib.YaclibView.TransitionDefinition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.roylance.yaclib.YaclibView.TransitionDefinition buildPartial() {
        org.roylance.yaclib.YaclibView.TransitionDefinition result = new org.roylance.yaclib.YaclibView.TransitionDefinition(this);
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (toBuilder_ == null) {
          result.to_ = to_;
        } else {
          result.to_ = toBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.roylance.yaclib.YaclibView.TransitionDefinition) {
          return mergeFrom((org.roylance.yaclib.YaclibView.TransitionDefinition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.roylance.yaclib.YaclibView.TransitionDefinition other) {
        if (other == org.roylance.yaclib.YaclibView.TransitionDefinition.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.hasTo()) {
          mergeTo(other.getTo());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.roylance.yaclib.YaclibView.TransitionDefinition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.roylance.yaclib.YaclibView.TransitionDefinition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private org.roylance.yaclib.YaclibView.ViewDefinition from_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder> fromBuilder_;
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public boolean hasFrom() {
        return fromBuilder_ != null || from_ != null;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition getFrom() {
        if (fromBuilder_ == null) {
          return from_ == null ? org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance() : from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public Builder setFrom(org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public Builder setFrom(
          org.roylance.yaclib.YaclibView.ViewDefinition.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public Builder mergeFrom(org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (fromBuilder_ == null) {
          if (from_ != null) {
            from_ =
              org.roylance.yaclib.YaclibView.ViewDefinition.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = null;
          onChanged();
        } else {
          from_ = null;
          fromBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition.Builder getFromBuilder() {

        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_ == null ?
              org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance() : from_;
        }
      }
      /**
       * .org.roylance.yaclib.ViewDefinition from = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>(
                  getFrom(),
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      private org.roylance.yaclib.YaclibView.ViewDefinition to_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder> toBuilder_;
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public boolean hasTo() {
        return toBuilder_ != null || to_ != null;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition getTo() {
        if (toBuilder_ == null) {
          return to_ == null ? org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance() : to_;
        } else {
          return toBuilder_.getMessage();
        }
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public Builder setTo(org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (toBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          to_ = value;
          onChanged();
        } else {
          toBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public Builder setTo(
          org.roylance.yaclib.YaclibView.ViewDefinition.Builder builderForValue) {
        if (toBuilder_ == null) {
          to_ = builderForValue.build();
          onChanged();
        } else {
          toBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public Builder mergeTo(org.roylance.yaclib.YaclibView.ViewDefinition value) {
        if (toBuilder_ == null) {
          if (to_ != null) {
            to_ =
              org.roylance.yaclib.YaclibView.ViewDefinition.newBuilder(to_).mergeFrom(value).buildPartial();
          } else {
            to_ = value;
          }
          onChanged();
        } else {
          toBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public Builder clearTo() {
        if (toBuilder_ == null) {
          to_ = null;
          onChanged();
        } else {
          to_ = null;
          toBuilder_ = null;
        }

        return this;
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinition.Builder getToBuilder() {

        onChanged();
        return getToFieldBuilder().getBuilder();
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      public org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder getToOrBuilder() {
        if (toBuilder_ != null) {
          return toBuilder_.getMessageOrBuilder();
        } else {
          return to_ == null ?
              org.roylance.yaclib.YaclibView.ViewDefinition.getDefaultInstance() : to_;
        }
      }
      /**
       * .org.roylance.yaclib.ViewDefinition to = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>
          getToFieldBuilder() {
        if (toBuilder_ == null) {
          toBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.roylance.yaclib.YaclibView.ViewDefinition, org.roylance.yaclib.YaclibView.ViewDefinition.Builder, org.roylance.yaclib.YaclibView.ViewDefinitionOrBuilder>(
                  getTo(),
                  getParentForChildren(),
                  isClean());
          to_ = null;
        }
        return toBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:org.roylance.yaclib.TransitionDefinition)
    }

    // @@protoc_insertion_point(class_scope:org.roylance.yaclib.TransitionDefinition)
    private static final org.roylance.yaclib.YaclibView.TransitionDefinition DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.roylance.yaclib.YaclibView.TransitionDefinition();
    }

    public static org.roylance.yaclib.YaclibView.TransitionDefinition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TransitionDefinition>
        PARSER = new com.google.protobuf.AbstractParser<TransitionDefinition>() {
      @java.lang.Override
      public TransitionDefinition parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TransitionDefinition(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<TransitionDefinition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TransitionDefinition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public org.roylance.yaclib.YaclibView.TransitionDefinition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_roylance_yaclib_ColumnDefinition_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_roylance_yaclib_ColumnDefinition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_roylance_yaclib_RowDefinition_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_roylance_yaclib_RowDefinition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_roylance_yaclib_ViewDefinition_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_roylance_yaclib_ViewDefinition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_roylance_yaclib_TransitionDefinition_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_roylance_yaclib_TransitionDefinition_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\021yaclib_view.proto\022\023org.roylance.yaclib" +
      "\032\026yaclib_viewmodel.proto\"\306\001\n\020ColumnDefin" +
      "ition\0227\n\007binding\030\001 \001(\0132&.org.roylance.ya" +
      "clib.BindingDefinition\0224\n\013visual_size\030\002 " +
      "\001(\0162\037.org.roylance.yaclib.VisualSize\0224\n\004" +
      "show\030\003 \001(\0132&.org.roylance.yaclib.Binding" +
      "Definition\022\r\n\005title\030\004 \001(\t\"}\n\rRowDefiniti" +
      "on\0226\n\007columns\030\001 \003(\0132%.org.roylance.yacli" +
      "b.ColumnDefinition\0224\n\004show\030\002 \001(\0132&.org.r" +
      "oylance.yaclib.BindingDefinition\"\222\002\n\016Vie" +
      "wDefinition\0220\n\tview_type\030\001 \001(\0162\035.org.roy" +
      "lance.yaclib.ViewType\0222\n\005views\030\002 \003(\0132#.o" +
      "rg.roylance.yaclib.ViewDefinition\0220\n\004row" +
      "s\030\003 \003(\0132\".org.roylance.yaclib.RowDefinit" +
      "ion\0224\n\004show\030\004 \001(\0132&.org.roylance.yaclib." +
      "BindingDefinition\0222\n\nview_model\030\005 \001(\0132\036." +
      "org.roylance.yaclib.ViewModel\"z\n\024Transit" +
      "ionDefinition\0221\n\004from\030\001 \001(\0132#.org.roylan" +
      "ce.yaclib.ViewDefinition\022/\n\002to\030\002 \001(\0132#.o" +
      "rg.roylance.yaclib.ViewDefinition*;\n\nVis" +
      "ualSize\022\r\n\tPARAGRAPH\020\000\022\006\n\002H4\020\001\022\006\n\002H3\020\002\022\006" +
      "\n\002H2\020\003\022\006\n\002H1\020\004*\206\003\n\nColumnSpan\022\n\n\006SPAN_1\020" +
      "\000\022\n\n\006SPAN_2\020\001\022\n\n\006SPAN_3\020\002\022\n\n\006SPAN_4\020\003\022\n\n" +
      "\006SPAN_5\020\004\022\n\n\006SPAN_6\020\005\022\n\n\006SPAN_7\020\006\022\n\n\006SPA" +
      "N_8\020\007\022\n\n\006SPAN_9\020\010\022\013\n\007SPAN_10\020\t\022\013\n\007SPAN_1" +
      "1\020\n\022\013\n\007SPAN_12\020\013\022\021\n\rSPAN_OFFSET_1\020\014\022\021\n\rS" +
      "PAN_OFFSET_2\020\r\022\021\n\rSPAN_OFFSET_3\020\016\022\021\n\rSPA" +
      "N_OFFSET_4\020\017\022\021\n\rSPAN_OFFSET_5\020\020\022\021\n\rSPAN_" +
      "OFFSET_6\020\021\022\021\n\rSPAN_OFFSET_7\020\022\022\021\n\rSPAN_OF" +
      "FSET_8\020\023\022\021\n\rSPAN_OFFSET_9\020\024\022\022\n\016SPAN_OFFS" +
      "ET_10\020\025\022\022\n\016SPAN_OFFSET_11\020\026\022\022\n\016SPAN_OFFS" +
      "ET_12\020\027*O\n\010ViewType\022\r\n\tCONTAINER\020\000\022\007\n\003RO" +
      "W\020\001\022\010\n\004FORM\020\002\022\010\n\004ROOT\020\003\022\007\n\003NAV\020\004\022\006\n\002UL\020\005" +
      "\022\006\n\002LI\020\006b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.roylance.yaclib.YaclibViewmodel.getDescriptor(),
        }, assigner);
    internal_static_org_roylance_yaclib_ColumnDefinition_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_org_roylance_yaclib_ColumnDefinition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_roylance_yaclib_ColumnDefinition_descriptor,
        new java.lang.String[] { "Binding", "VisualSize", "Show", "Title", });
    internal_static_org_roylance_yaclib_RowDefinition_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_org_roylance_yaclib_RowDefinition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_roylance_yaclib_RowDefinition_descriptor,
        new java.lang.String[] { "Columns", "Show", });
    internal_static_org_roylance_yaclib_ViewDefinition_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_org_roylance_yaclib_ViewDefinition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_roylance_yaclib_ViewDefinition_descriptor,
        new java.lang.String[] { "ViewType", "Views", "Rows", "Show", "ViewModel", });
    internal_static_org_roylance_yaclib_TransitionDefinition_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_org_roylance_yaclib_TransitionDefinition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_roylance_yaclib_TransitionDefinition_descriptor,
        new java.lang.String[] { "From", "To", });
    org.roylance.yaclib.YaclibViewmodel.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}

redpajama_set_name: RedPajamaGithub