Source: proto/spine/options_pb.js

// source: spine/options.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!

var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();

var google_protobuf_descriptor_pb = require('../google/protobuf/descriptor_pb.js');
goog.object.extend(proto, google_protobuf_descriptor_pb);
goog.exportSymbol('proto.EntityOption', null, global);
goog.exportSymbol('proto.EntityOption.Kind', null, global);
goog.exportSymbol('proto.EntityOption.Visibility', null, global);
goog.exportSymbol('proto.GoesOption', null, global);
goog.exportSymbol('proto.IfInvalidOption', null, global);
goog.exportSymbol('proto.IfMissingOption', null, global);
goog.exportSymbol('proto.IsOption', null, global);
goog.exportSymbol('proto.MaxOption', null, global);
goog.exportSymbol('proto.MinOption', null, global);
goog.exportSymbol('proto.PatternOption', null, global);
goog.exportSymbol('proto.PatternOption.Modifier', null, global);
goog.exportSymbol('proto.beta', null, global);
goog.exportSymbol('proto.betaAll', null, global);
goog.exportSymbol('proto.betaType', null, global);
goog.exportSymbol('proto.column', null, global);
goog.exportSymbol('proto.constraintFor', null, global);
goog.exportSymbol('proto.defaultMessage', null, global);
goog.exportSymbol('proto.distinct', null, global);
goog.exportSymbol('proto.entity', null, global);
goog.exportSymbol('proto.everyIs', null, global);
goog.exportSymbol('proto.experimental', null, global);
goog.exportSymbol('proto.experimentalAll', null, global);
goog.exportSymbol('proto.experimentalType', null, global);
goog.exportSymbol('proto.goes', null, global);
goog.exportSymbol('proto.ifInvalid', null, global);
goog.exportSymbol('proto.ifMissing', null, global);
goog.exportSymbol('proto.internal', null, global);
goog.exportSymbol('proto.internalAll', null, global);
goog.exportSymbol('proto.internalType', null, global);
goog.exportSymbol('proto.is', null, global);
goog.exportSymbol('proto.isRequired', null, global);
goog.exportSymbol('proto.max', null, global);
goog.exportSymbol('proto.min', null, global);
goog.exportSymbol('proto.pattern', null, global);
goog.exportSymbol('proto.range', null, global);
goog.exportSymbol('proto.required', null, global);
goog.exportSymbol('proto.requiredField', null, global);
goog.exportSymbol('proto.setOnce', null, global);
goog.exportSymbol('proto.spiAll', null, global);
goog.exportSymbol('proto.spiService', null, global);
goog.exportSymbol('proto.spiType', null, global);
goog.exportSymbol('proto.typeUrlPrefix', null, global);
goog.exportSymbol('proto.validate', null, global);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.IfMissingOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.IfMissingOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.IfMissingOption.displayName = 'proto.IfMissingOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.MinOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.MinOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.MinOption.displayName = 'proto.MinOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.MaxOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.MaxOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.MaxOption.displayName = 'proto.MaxOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.PatternOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.PatternOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.PatternOption.displayName = 'proto.PatternOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.PatternOption.Modifier = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.PatternOption.Modifier, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.PatternOption.Modifier.displayName = 'proto.PatternOption.Modifier';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.IfInvalidOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.IfInvalidOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.IfInvalidOption.displayName = 'proto.IfInvalidOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.GoesOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.GoesOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.GoesOption.displayName = 'proto.GoesOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.EntityOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.EntityOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.EntityOption.displayName = 'proto.EntityOption';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.IsOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.IsOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.IsOption.displayName = 'proto.IsOption';
}



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.IfMissingOption.prototype.toObject = function(opt_includeInstance) {
  return proto.IfMissingOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.IfMissingOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.IfMissingOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    msgFormat: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.IfMissingOption}
 */
proto.IfMissingOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.IfMissingOption;
  return proto.IfMissingOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.IfMissingOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.IfMissingOption}
 */
proto.IfMissingOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsgFormat(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.IfMissingOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.IfMissingOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.IfMissingOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.IfMissingOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMsgFormat();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * optional string msg_format = 1;
 * @return {string}
 */
proto.IfMissingOption.prototype.getMsgFormat = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.IfMissingOption} returns this
 */
proto.IfMissingOption.prototype.setMsgFormat = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.MinOption.prototype.toObject = function(opt_includeInstance) {
  return proto.MinOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.MinOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.MinOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: jspb.Message.getFieldWithDefault(msg, 1, ""),
    exclusive: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
    msgFormat: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.MinOption}
 */
proto.MinOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.MinOption;
  return proto.MinOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.MinOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.MinOption}
 */
proto.MinOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setValue(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setExclusive(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsgFormat(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.MinOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.MinOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.MinOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.MinOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getExclusive();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
  f = message.getMsgFormat();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional string value = 1;
 * @return {string}
 */
proto.MinOption.prototype.getValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.MinOption} returns this
 */
proto.MinOption.prototype.setValue = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional bool exclusive = 2;
 * @return {boolean}
 */
proto.MinOption.prototype.getExclusive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.MinOption} returns this
 */
proto.MinOption.prototype.setExclusive = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};


/**
 * optional string msg_format = 3;
 * @return {string}
 */
proto.MinOption.prototype.getMsgFormat = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.MinOption} returns this
 */
proto.MinOption.prototype.setMsgFormat = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.MaxOption.prototype.toObject = function(opt_includeInstance) {
  return proto.MaxOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.MaxOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.MaxOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: jspb.Message.getFieldWithDefault(msg, 1, ""),
    exclusive: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
    msgFormat: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.MaxOption}
 */
proto.MaxOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.MaxOption;
  return proto.MaxOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.MaxOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.MaxOption}
 */
proto.MaxOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setValue(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setExclusive(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsgFormat(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.MaxOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.MaxOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.MaxOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.MaxOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getExclusive();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
  f = message.getMsgFormat();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional string value = 1;
 * @return {string}
 */
proto.MaxOption.prototype.getValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.MaxOption} returns this
 */
proto.MaxOption.prototype.setValue = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional bool exclusive = 2;
 * @return {boolean}
 */
proto.MaxOption.prototype.getExclusive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.MaxOption} returns this
 */
proto.MaxOption.prototype.setExclusive = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};


/**
 * optional string msg_format = 3;
 * @return {string}
 */
proto.MaxOption.prototype.getMsgFormat = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.MaxOption} returns this
 */
proto.MaxOption.prototype.setMsgFormat = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.PatternOption.prototype.toObject = function(opt_includeInstance) {
  return proto.PatternOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.PatternOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.PatternOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    regex: jspb.Message.getFieldWithDefault(msg, 1, ""),
    flag: jspb.Message.getFieldWithDefault(msg, 2, 0),
    modifier: (f = msg.getModifier()) && proto.PatternOption.Modifier.toObject(includeInstance, f),
    msgFormat: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.PatternOption}
 */
proto.PatternOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.PatternOption;
  return proto.PatternOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.PatternOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.PatternOption}
 */
proto.PatternOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setRegex(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setFlag(value);
      break;
    case 4:
      var value = new proto.PatternOption.Modifier;
      reader.readMessage(value,proto.PatternOption.Modifier.deserializeBinaryFromReader);
      msg.setModifier(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsgFormat(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.PatternOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.PatternOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.PatternOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.PatternOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRegex();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getFlag();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getModifier();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.PatternOption.Modifier.serializeBinaryToWriter
    );
  }
  f = message.getMsgFormat();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.PatternOption.Modifier.prototype.toObject = function(opt_includeInstance) {
  return proto.PatternOption.Modifier.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.PatternOption.Modifier} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.PatternOption.Modifier.toObject = function(includeInstance, msg) {
  var f, obj = {
    dotAll: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
    caseInsensitive: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
    multiline: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
    unicode: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
    partialMatch: jspb.Message.getBooleanFieldWithDefault(msg, 5, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.PatternOption.Modifier}
 */
proto.PatternOption.Modifier.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.PatternOption.Modifier;
  return proto.PatternOption.Modifier.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.PatternOption.Modifier} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.PatternOption.Modifier}
 */
proto.PatternOption.Modifier.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDotAll(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setCaseInsensitive(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setMultiline(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setUnicode(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setPartialMatch(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.PatternOption.Modifier.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.PatternOption.Modifier.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.PatternOption.Modifier} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.PatternOption.Modifier.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getDotAll();
  if (f) {
    writer.writeBool(
      1,
      f
    );
  }
  f = message.getCaseInsensitive();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
  f = message.getMultiline();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
  f = message.getUnicode();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
  f = message.getPartialMatch();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
};


/**
 * optional bool dot_all = 1;
 * @return {boolean}
 */
proto.PatternOption.Modifier.prototype.getDotAll = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));
};


/**
 * @param {boolean} value
 * @return {!proto.PatternOption.Modifier} returns this
 */
proto.PatternOption.Modifier.prototype.setDotAll = function(value) {
  return jspb.Message.setProto3BooleanField(this, 1, value);
};


/**
 * optional bool case_insensitive = 2;
 * @return {boolean}
 */
proto.PatternOption.Modifier.prototype.getCaseInsensitive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.PatternOption.Modifier} returns this
 */
proto.PatternOption.Modifier.prototype.setCaseInsensitive = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};


/**
 * optional bool multiline = 3;
 * @return {boolean}
 */
proto.PatternOption.Modifier.prototype.getMultiline = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.PatternOption.Modifier} returns this
 */
proto.PatternOption.Modifier.prototype.setMultiline = function(value) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};


/**
 * optional bool unicode = 4;
 * @return {boolean}
 */
proto.PatternOption.Modifier.prototype.getUnicode = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.PatternOption.Modifier} returns this
 */
proto.PatternOption.Modifier.prototype.setUnicode = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};


/**
 * optional bool partial_match = 5;
 * @return {boolean}
 */
proto.PatternOption.Modifier.prototype.getPartialMatch = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.PatternOption.Modifier} returns this
 */
proto.PatternOption.Modifier.prototype.setPartialMatch = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional string regex = 1;
 * @return {string}
 */
proto.PatternOption.prototype.getRegex = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.PatternOption} returns this
 */
proto.PatternOption.prototype.setRegex = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional int32 flag = 2;
 * @return {number}
 */
proto.PatternOption.prototype.getFlag = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.PatternOption} returns this
 */
proto.PatternOption.prototype.setFlag = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional Modifier modifier = 4;
 * @return {?proto.PatternOption.Modifier}
 */
proto.PatternOption.prototype.getModifier = function() {
  return /** @type{?proto.PatternOption.Modifier} */ (
    jspb.Message.getWrapperField(this, proto.PatternOption.Modifier, 4));
};


/**
 * @param {?proto.PatternOption.Modifier|undefined} value
 * @return {!proto.PatternOption} returns this
*/
proto.PatternOption.prototype.setModifier = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.PatternOption} returns this
 */
proto.PatternOption.prototype.clearModifier = function() {
  return this.setModifier(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.PatternOption.prototype.hasModifier = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional string msg_format = 3;
 * @return {string}
 */
proto.PatternOption.prototype.getMsgFormat = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.PatternOption} returns this
 */
proto.PatternOption.prototype.setMsgFormat = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.IfInvalidOption.prototype.toObject = function(opt_includeInstance) {
  return proto.IfInvalidOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.IfInvalidOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.IfInvalidOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    msgFormat: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.IfInvalidOption}
 */
proto.IfInvalidOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.IfInvalidOption;
  return proto.IfInvalidOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.IfInvalidOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.IfInvalidOption}
 */
proto.IfInvalidOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsgFormat(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.IfInvalidOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.IfInvalidOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.IfInvalidOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.IfInvalidOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMsgFormat();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * optional string msg_format = 1;
 * @return {string}
 */
proto.IfInvalidOption.prototype.getMsgFormat = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.IfInvalidOption} returns this
 */
proto.IfInvalidOption.prototype.setMsgFormat = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.GoesOption.prototype.toObject = function(opt_includeInstance) {
  return proto.GoesOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.GoesOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.GoesOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    pb_with: jspb.Message.getFieldWithDefault(msg, 1, ""),
    msgFormat: jspb.Message.getFieldWithDefault(msg, 2, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.GoesOption}
 */
proto.GoesOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.GoesOption;
  return proto.GoesOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.GoesOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.GoesOption}
 */
proto.GoesOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setWith(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsgFormat(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.GoesOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.GoesOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.GoesOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.GoesOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getWith();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getMsgFormat();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional string with = 1;
 * @return {string}
 */
proto.GoesOption.prototype.getWith = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.GoesOption} returns this
 */
proto.GoesOption.prototype.setWith = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string msg_format = 2;
 * @return {string}
 */
proto.GoesOption.prototype.getMsgFormat = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.GoesOption} returns this
 */
proto.GoesOption.prototype.setMsgFormat = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.EntityOption.prototype.toObject = function(opt_includeInstance) {
  return proto.EntityOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.EntityOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.EntityOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    kind: jspb.Message.getFieldWithDefault(msg, 1, 0),
    visibility: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.EntityOption}
 */
proto.EntityOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.EntityOption;
  return proto.EntityOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.EntityOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.EntityOption}
 */
proto.EntityOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.EntityOption.Kind} */ (reader.readEnum());
      msg.setKind(value);
      break;
    case 2:
      var value = /** @type {!proto.EntityOption.Visibility} */ (reader.readEnum());
      msg.setVisibility(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.EntityOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.EntityOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.EntityOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.EntityOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getKind();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getVisibility();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.EntityOption.Kind = {
  KIND_UNKNOWN: 0,
  AGGREGATE: 1,
  PROJECTION: 2,
  PROCESS_MANAGER: 3,
  ENTITY: 4
};

/**
 * @enum {number}
 */
proto.EntityOption.Visibility = {
  DEFAULT: 0,
  NONE: 1,
  SUBSCRIBE: 2,
  QUERY: 3,
  FULL: 4
};

/**
 * optional Kind kind = 1;
 * @return {!proto.EntityOption.Kind}
 */
proto.EntityOption.prototype.getKind = function() {
  return /** @type {!proto.EntityOption.Kind} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.EntityOption.Kind} value
 * @return {!proto.EntityOption} returns this
 */
proto.EntityOption.prototype.setKind = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional Visibility visibility = 2;
 * @return {!proto.EntityOption.Visibility}
 */
proto.EntityOption.prototype.getVisibility = function() {
  return /** @type {!proto.EntityOption.Visibility} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {!proto.EntityOption.Visibility} value
 * @return {!proto.EntityOption} returns this
 */
proto.EntityOption.prototype.setVisibility = function(value) {
  return jspb.Message.setProto3EnumField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.IsOption.prototype.toObject = function(opt_includeInstance) {
  return proto.IsOption.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.IsOption} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.IsOption.toObject = function(includeInstance, msg) {
  var f, obj = {
    generate: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
    javaType: jspb.Message.getFieldWithDefault(msg, 2, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.IsOption}
 */
proto.IsOption.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.IsOption;
  return proto.IsOption.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.IsOption} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.IsOption}
 */
proto.IsOption.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setGenerate(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setJavaType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.IsOption.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.IsOption.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.IsOption} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.IsOption.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getGenerate();
  if (f) {
    writer.writeBool(
      1,
      f
    );
  }
  f = message.getJavaType();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional bool generate = 1;
 * @return {boolean}
 */
proto.IsOption.prototype.getGenerate = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));
};


/**
 * @param {boolean} value
 * @return {!proto.IsOption} returns this
 */
proto.IsOption.prototype.setGenerate = function(value) {
  return jspb.Message.setProto3BooleanField(this, 1, value);
};


/**
 * optional string java_type = 2;
 * @return {string}
 */
proto.IsOption.prototype.getJavaType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.IsOption} returns this
 */
proto.IsOption.prototype.setJavaType = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};



/**
 * A tuple of {field number, class constructor} for the extension
 * field named `required`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.required = new jspb.ExtensionFieldInfo(
    73812,
    {required: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73812] = new jspb.ExtensionFieldBinaryInfo(
    proto.required,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73812] = proto.required;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `ifMissing`.
 * @type {!jspb.ExtensionFieldInfo<!proto.IfMissingOption>}
 */
proto.ifMissing = new jspb.ExtensionFieldInfo(
    73813,
    {ifMissing: 0},
    proto.IfMissingOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.IfMissingOption.toObject),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73813] = new jspb.ExtensionFieldBinaryInfo(
    proto.ifMissing,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.IfMissingOption.serializeBinaryToWriter,
    proto.IfMissingOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73813] = proto.ifMissing;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `max`.
 * @type {!jspb.ExtensionFieldInfo<!proto.MaxOption>}
 */
proto.max = new jspb.ExtensionFieldInfo(
    73816,
    {max: 0},
    proto.MaxOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.MaxOption.toObject),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73816] = new jspb.ExtensionFieldBinaryInfo(
    proto.max,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.MaxOption.serializeBinaryToWriter,
    proto.MaxOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73816] = proto.max;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `min`.
 * @type {!jspb.ExtensionFieldInfo<!proto.MinOption>}
 */
proto.min = new jspb.ExtensionFieldInfo(
    73817,
    {min: 0},
    proto.MinOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.MinOption.toObject),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73817] = new jspb.ExtensionFieldBinaryInfo(
    proto.min,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.MinOption.serializeBinaryToWriter,
    proto.MinOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73817] = proto.min;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `pattern`.
 * @type {!jspb.ExtensionFieldInfo<!proto.PatternOption>}
 */
proto.pattern = new jspb.ExtensionFieldInfo(
    73820,
    {pattern: 0},
    proto.PatternOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.PatternOption.toObject),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73820] = new jspb.ExtensionFieldBinaryInfo(
    proto.pattern,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.PatternOption.serializeBinaryToWriter,
    proto.PatternOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73820] = proto.pattern;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `validate`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.validate = new jspb.ExtensionFieldInfo(
    73821,
    {validate: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73821] = new jspb.ExtensionFieldBinaryInfo(
    proto.validate,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73821] = proto.validate;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `ifInvalid`.
 * @type {!jspb.ExtensionFieldInfo<!proto.IfInvalidOption>}
 */
proto.ifInvalid = new jspb.ExtensionFieldInfo(
    73822,
    {ifInvalid: 0},
    proto.IfInvalidOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.IfInvalidOption.toObject),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73822] = new jspb.ExtensionFieldBinaryInfo(
    proto.ifInvalid,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.IfInvalidOption.serializeBinaryToWriter,
    proto.IfInvalidOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73822] = proto.ifInvalid;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `goes`.
 * @type {!jspb.ExtensionFieldInfo<!proto.GoesOption>}
 */
proto.goes = new jspb.ExtensionFieldInfo(
    73823,
    {goes: 0},
    proto.GoesOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.GoesOption.toObject),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73823] = new jspb.ExtensionFieldBinaryInfo(
    proto.goes,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.GoesOption.serializeBinaryToWriter,
    proto.GoesOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73823] = proto.goes;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `setOnce`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.setOnce = new jspb.ExtensionFieldInfo(
    73824,
    {setOnce: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73824] = new jspb.ExtensionFieldBinaryInfo(
    proto.setOnce,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73824] = proto.setOnce;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `distinct`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.distinct = new jspb.ExtensionFieldInfo(
    73825,
    {distinct: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73825] = new jspb.ExtensionFieldBinaryInfo(
    proto.distinct,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73825] = proto.distinct;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `range`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.range = new jspb.ExtensionFieldInfo(
    73826,
    {range: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73826] = new jspb.ExtensionFieldBinaryInfo(
    proto.range,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73826] = proto.range;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `internal`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.internal = new jspb.ExtensionFieldInfo(
    73850,
    {internal: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73850] = new jspb.ExtensionFieldBinaryInfo(
    proto.internal,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73850] = proto.internal;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `experimental`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.experimental = new jspb.ExtensionFieldInfo(
    73852,
    {experimental: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73852] = new jspb.ExtensionFieldBinaryInfo(
    proto.experimental,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73852] = proto.experimental;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `beta`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.beta = new jspb.ExtensionFieldInfo(
    73853,
    {beta: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73853] = new jspb.ExtensionFieldBinaryInfo(
    proto.beta,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73853] = proto.beta;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `column`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.column = new jspb.ExtensionFieldInfo(
    73854,
    {column: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[73854] = new jspb.ExtensionFieldBinaryInfo(
    proto.column,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FieldOptions.extensions[73854] = proto.column;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `isRequired`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.isRequired = new jspb.ExtensionFieldInfo(
    73891,
    {isRequired: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.OneofOptions.extensionsBinary[73891] = new jspb.ExtensionFieldBinaryInfo(
    proto.isRequired,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.OneofOptions.extensions[73891] = proto.isRequired;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `defaultMessage`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.defaultMessage = new jspb.ExtensionFieldInfo(
    73901,
    {defaultMessage: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73901] = new jspb.ExtensionFieldBinaryInfo(
    proto.defaultMessage,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73901] = proto.defaultMessage;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `requiredField`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.requiredField = new jspb.ExtensionFieldInfo(
    73902,
    {requiredField: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73902] = new jspb.ExtensionFieldBinaryInfo(
    proto.requiredField,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73902] = proto.requiredField;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `entity`.
 * @type {!jspb.ExtensionFieldInfo<!proto.EntityOption>}
 */
proto.entity = new jspb.ExtensionFieldInfo(
    73903,
    {entity: 0},
    proto.EntityOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.EntityOption.toObject),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73903] = new jspb.ExtensionFieldBinaryInfo(
    proto.entity,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.EntityOption.serializeBinaryToWriter,
    proto.EntityOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73903] = proto.entity;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `constraintFor`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.constraintFor = new jspb.ExtensionFieldInfo(
    73904,
    {constraintFor: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73904] = new jspb.ExtensionFieldBinaryInfo(
    proto.constraintFor,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73904] = proto.constraintFor;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `internalType`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.internalType = new jspb.ExtensionFieldInfo(
    73911,
    {internalType: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73911] = new jspb.ExtensionFieldBinaryInfo(
    proto.internalType,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73911] = proto.internalType;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `spiType`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.spiType = new jspb.ExtensionFieldInfo(
    73912,
    {spiType: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73912] = new jspb.ExtensionFieldBinaryInfo(
    proto.spiType,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73912] = proto.spiType;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `experimentalType`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.experimentalType = new jspb.ExtensionFieldInfo(
    73913,
    {experimentalType: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73913] = new jspb.ExtensionFieldBinaryInfo(
    proto.experimentalType,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73913] = proto.experimentalType;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `betaType`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.betaType = new jspb.ExtensionFieldInfo(
    73914,
    {betaType: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73914] = new jspb.ExtensionFieldBinaryInfo(
    proto.betaType,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73914] = proto.betaType;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `is`.
 * @type {!jspb.ExtensionFieldInfo<!proto.IsOption>}
 */
proto.is = new jspb.ExtensionFieldInfo(
    73915,
    {is: 0},
    proto.IsOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.IsOption.toObject),
    0);

google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[73915] = new jspb.ExtensionFieldBinaryInfo(
    proto.is,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.IsOption.serializeBinaryToWriter,
    proto.IsOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MessageOptions.extensions[73915] = proto.is;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `typeUrlPrefix`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.typeUrlPrefix = new jspb.ExtensionFieldInfo(
    73941,
    {typeUrlPrefix: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FileOptions.extensionsBinary[73941] = new jspb.ExtensionFieldBinaryInfo(
    proto.typeUrlPrefix,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FileOptions.extensions[73941] = proto.typeUrlPrefix;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `internalAll`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.internalAll = new jspb.ExtensionFieldInfo(
    73942,
    {internalAll: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FileOptions.extensionsBinary[73942] = new jspb.ExtensionFieldBinaryInfo(
    proto.internalAll,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FileOptions.extensions[73942] = proto.internalAll;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `spiAll`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.spiAll = new jspb.ExtensionFieldInfo(
    73943,
    {spiAll: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FileOptions.extensionsBinary[73943] = new jspb.ExtensionFieldBinaryInfo(
    proto.spiAll,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FileOptions.extensions[73943] = proto.spiAll;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `experimentalAll`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.experimentalAll = new jspb.ExtensionFieldInfo(
    73944,
    {experimentalAll: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FileOptions.extensionsBinary[73944] = new jspb.ExtensionFieldBinaryInfo(
    proto.experimentalAll,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FileOptions.extensions[73944] = proto.experimentalAll;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `betaAll`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.betaAll = new jspb.ExtensionFieldInfo(
    73945,
    {betaAll: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.FileOptions.extensionsBinary[73945] = new jspb.ExtensionFieldBinaryInfo(
    proto.betaAll,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FileOptions.extensions[73945] = proto.betaAll;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `everyIs`.
 * @type {!jspb.ExtensionFieldInfo<!proto.IsOption>}
 */
proto.everyIs = new jspb.ExtensionFieldInfo(
    73946,
    {everyIs: 0},
    proto.IsOption,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         proto.IsOption.toObject),
    0);

google_protobuf_descriptor_pb.FileOptions.extensionsBinary[73946] = new jspb.ExtensionFieldBinaryInfo(
    proto.everyIs,
    jspb.BinaryReader.prototype.readMessage,
    jspb.BinaryWriter.prototype.writeMessage,
    proto.IsOption.serializeBinaryToWriter,
    proto.IsOption.deserializeBinaryFromReader,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.FileOptions.extensions[73946] = proto.everyIs;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `spiService`.
 * @type {!jspb.ExtensionFieldInfo<boolean>}
 */
proto.spiService = new jspb.ExtensionFieldInfo(
    73971,
    {spiService: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[73971] = new jspb.ExtensionFieldBinaryInfo(
    proto.spiService,
    jspb.BinaryReader.prototype.readBool,
    jspb.BinaryWriter.prototype.writeBool,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.ServiceOptions.extensions[73971] = proto.spiService;

goog.object.extend(exports, proto);

// Generated by Spine ProtoJs Plugin

let ObjectParser = require('../../client/parser/object-parser.js').default;
let TypeParsers = require('../../client/parser/type-parsers.js').default;

proto.IfInvalidOption.Parser = function() {
  ObjectParser.call(this);
};
proto.IfInvalidOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.IfInvalidOption.Parser.prototype.constructor = proto.IfInvalidOption.Parser;
proto.IfInvalidOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.IfInvalidOption();
  
  if (obj.msgFormat !== undefined) {
    if (obj.msgFormat !== null) {
      let value = obj.msgFormat;
      msg.setMsgFormat(value);
    }
  }
  return msg;
};

proto.GoesOption.Parser = function() {
  ObjectParser.call(this);
};
proto.GoesOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.GoesOption.Parser.prototype.constructor = proto.GoesOption.Parser;
proto.GoesOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.GoesOption();
  
  if (obj.with !== undefined) {
    if (obj.with !== null) {
      let value = obj.with;
      msg.setWith(value);
    }
  }
  
  if (obj.msgFormat !== undefined) {
    if (obj.msgFormat !== null) {
      let value = obj.msgFormat;
      msg.setMsgFormat(value);
    }
  }
  return msg;
};

proto.PatternOption.Parser = function() {
  ObjectParser.call(this);
};
proto.PatternOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.PatternOption.Parser.prototype.constructor = proto.PatternOption.Parser;
proto.PatternOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.PatternOption();
  
  if (obj.regex !== undefined) {
    if (obj.regex !== null) {
      let value = obj.regex;
      msg.setRegex(value);
    }
  }
  
  if (obj.flag !== undefined) {
    if (obj.flag !== null) {
      let value = obj.flag;
      msg.setFlag(value);
    }
  }
  
  if (obj.modifier !== undefined) {
    if (obj.modifier === null) {
      msg.setModifier(null);
    } else {
      let value = TypeParsers.parserFor('type.spine.io/PatternOption.Modifier').fromObject(obj.modifier);
      msg.setModifier(value);
    }
  }
  
  if (obj.msgFormat !== undefined) {
    if (obj.msgFormat !== null) {
      let value = obj.msgFormat;
      msg.setMsgFormat(value);
    }
  }
  return msg;
};

proto.MaxOption.Parser = function() {
  ObjectParser.call(this);
};
proto.MaxOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.MaxOption.Parser.prototype.constructor = proto.MaxOption.Parser;
proto.MaxOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.MaxOption();
  
  if (obj.value !== undefined) {
    if (obj.value !== null) {
      let value = obj.value;
      msg.setValue(value);
    }
  }
  
  if (obj.exclusive !== undefined) {
    if (obj.exclusive !== null) {
      let value = obj.exclusive;
      msg.setExclusive(value);
    }
  }
  
  if (obj.msgFormat !== undefined) {
    if (obj.msgFormat !== null) {
      let value = obj.msgFormat;
      msg.setMsgFormat(value);
    }
  }
  return msg;
};

proto.MinOption.Parser = function() {
  ObjectParser.call(this);
};
proto.MinOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.MinOption.Parser.prototype.constructor = proto.MinOption.Parser;
proto.MinOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.MinOption();
  
  if (obj.value !== undefined) {
    if (obj.value !== null) {
      let value = obj.value;
      msg.setValue(value);
    }
  }
  
  if (obj.exclusive !== undefined) {
    if (obj.exclusive !== null) {
      let value = obj.exclusive;
      msg.setExclusive(value);
    }
  }
  
  if (obj.msgFormat !== undefined) {
    if (obj.msgFormat !== null) {
      let value = obj.msgFormat;
      msg.setMsgFormat(value);
    }
  }
  return msg;
};

proto.IfMissingOption.Parser = function() {
  ObjectParser.call(this);
};
proto.IfMissingOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.IfMissingOption.Parser.prototype.constructor = proto.IfMissingOption.Parser;
proto.IfMissingOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.IfMissingOption();
  
  if (obj.msgFormat !== undefined) {
    if (obj.msgFormat !== null) {
      let value = obj.msgFormat;
      msg.setMsgFormat(value);
    }
  }
  return msg;
};

proto.PatternOption.Modifier.Parser = function() {
  ObjectParser.call(this);
};
proto.PatternOption.Modifier.Parser.prototype = Object.create(ObjectParser.prototype);
proto.PatternOption.Modifier.Parser.prototype.constructor = proto.PatternOption.Modifier.Parser;
proto.PatternOption.Modifier.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.PatternOption.Modifier();
  
  if (obj.dotAll !== undefined) {
    if (obj.dotAll !== null) {
      let value = obj.dotAll;
      msg.setDotAll(value);
    }
  }
  
  if (obj.caseInsensitive !== undefined) {
    if (obj.caseInsensitive !== null) {
      let value = obj.caseInsensitive;
      msg.setCaseInsensitive(value);
    }
  }
  
  if (obj.multiline !== undefined) {
    if (obj.multiline !== null) {
      let value = obj.multiline;
      msg.setMultiline(value);
    }
  }
  
  if (obj.unicode !== undefined) {
    if (obj.unicode !== null) {
      let value = obj.unicode;
      msg.setUnicode(value);
    }
  }
  
  if (obj.partialMatch !== undefined) {
    if (obj.partialMatch !== null) {
      let value = obj.partialMatch;
      msg.setPartialMatch(value);
    }
  }
  return msg;
};

proto.EntityOption.Parser = function() {
  ObjectParser.call(this);
};
proto.EntityOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.EntityOption.Parser.prototype.constructor = proto.EntityOption.Parser;
proto.EntityOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.EntityOption();
  
  if (obj.kind !== undefined) {
    if (obj.kind !== null) {
      let value = proto.EntityOption.Kind[obj.kind];
      msg.setKind(value);
    }
  }
  
  if (obj.visibility !== undefined) {
    if (obj.visibility !== null) {
      let value = proto.EntityOption.Visibility[obj.visibility];
      msg.setVisibility(value);
    }
  }
  return msg;
};

proto.IsOption.Parser = function() {
  ObjectParser.call(this);
};
proto.IsOption.Parser.prototype = Object.create(ObjectParser.prototype);
proto.IsOption.Parser.prototype.constructor = proto.IsOption.Parser;
proto.IsOption.Parser.prototype.fromObject = function(obj) {
  if (obj === null) {
    return null;
  }
  
  let msg = new proto.IsOption();
  
  if (obj.generate !== undefined) {
    if (obj.generate !== null) {
      let value = obj.generate;
      msg.setGenerate(value);
    }
  }
  
  if (obj.javaType !== undefined) {
    if (obj.javaType !== null) {
      let value = obj.javaType;
      msg.setJavaType(value);
    }
  }
  return msg;
};

// Generated by Spine ProtoJs Plugin
proto.IfInvalidOption.typeUrl = function() {
  return 'type.spine.io/IfInvalidOption';
};

// Generated by Spine ProtoJs Plugin
proto.GoesOption.typeUrl = function() {
  return 'type.spine.io/GoesOption';
};

// Generated by Spine ProtoJs Plugin
proto.PatternOption.typeUrl = function() {
  return 'type.spine.io/PatternOption';
};

// Generated by Spine ProtoJs Plugin
proto.MaxOption.typeUrl = function() {
  return 'type.spine.io/MaxOption';
};

// Generated by Spine ProtoJs Plugin
proto.MinOption.typeUrl = function() {
  return 'type.spine.io/MinOption';
};

// Generated by Spine ProtoJs Plugin
proto.IfMissingOption.typeUrl = function() {
  return 'type.spine.io/IfMissingOption';
};

// Generated by Spine ProtoJs Plugin
proto.PatternOption.Modifier.typeUrl = function() {
  return 'type.spine.io/PatternOption.Modifier';
};

// Generated by Spine ProtoJs Plugin
proto.EntityOption.typeUrl = function() {
  return 'type.spine.io/EntityOption';
};

// Generated by Spine ProtoJs Plugin
proto.IsOption.typeUrl = function() {
  return 'type.spine.io/IsOption';
};

// Generated by Spine ProtoJs Plugin
proto.EntityOption.Visibility.typeUrl = function() {
  return 'type.spine.io/EntityOption.Visibility';
};

// Generated by Spine ProtoJs Plugin
proto.EntityOption.Kind.typeUrl = function() {
  return 'type.spine.io/EntityOption.Kind';
};