示例#1
0
文件: IType.cs 项目: rudygt/dot-kafka
 private void ValidateField(Field field)
 {
     if (Schema != field.Schema)
         throw new SchemaException("Attempt to access field '" + field.Name +
                                   "' from a different schema instance.");
     if (field.Index > values.Length)
         throw new SchemaException("Invalid field index: " + field.Index);
 }
示例#2
0
文件: IType.cs 项目: rudygt/dot-kafka
 public object Get(Field field)
 {
     ValidateField(field);
     return GetFieldOrDefault(field);
 }
示例#3
0
文件: IType.cs 项目: rudygt/dot-kafka
 public Struct Set(Field field, object value)
 {
     ValidateField(field);
     values[field.Index] = value;
     return this;
 }
示例#4
0
文件: IType.cs 项目: rudygt/dot-kafka
 private object GetFieldOrDefault(Field field)
 {
     var value = values[field.Index];
     if (value != null)
         return value;
     if (field.DefaultValue != Field.NO_DEFAULT)
         return field.DefaultValue;
     throw new SchemaException("Missing value for field '" + field.Name + "' which has no default value.");
 }
示例#5
0
文件: IType.cs 项目: rudygt/dot-kafka
 public Struct GetStruct(Field field)
 {
     return (Struct) Get(field);
 }
示例#6
0
文件: IType.cs 项目: rudygt/dot-kafka
 public Struct Instance(Field field)
 {
     ValidateField(field);
     if (field.Type is Schema)
     {
         return new Struct((Schema) field.Type);
     }
     if (field.Type is KafkaArrayOf)
     {
         var array = (KafkaArrayOf) field.Type;
         return new Struct((Schema) array.Type);
     }
     throw new SchemaException("Field '" + field.Name + "' is not a container type, it is of type " +
                               field.Type);
 }
示例#7
0
文件: IType.cs 项目: rudygt/dot-kafka
 public short GetShort(Field field)
 {
     return (short) Get(field);
 }
示例#8
0
文件: IType.cs 项目: rudygt/dot-kafka
 public string GetString(Field field)
 {
     return (string) Get(field);
 }
示例#9
0
文件: IType.cs 项目: rudygt/dot-kafka
 public long GetInt64(Field field)
 {
     return (long) Get(field);
 }
示例#10
0
文件: IType.cs 项目: rudygt/dot-kafka
 public int GetInt(Field field)
 {
     return (int) Get(field);
 }
示例#11
0
文件: IType.cs 项目: rudygt/dot-kafka
 public MemoryStream GetBytes(Field field)
 {
     var result = Get(field);
     if (result is byte[])
         return new MemoryStream((byte[]) result);
     return (MemoryStream) result;
 }
示例#12
0
文件: IType.cs 项目: rudygt/dot-kafka
 public byte GetByte(Field field)
 {
     return (byte) Get(field);
 }
示例#13
0
文件: IType.cs 项目: rudygt/dot-kafka
 public object[] GetArray(Field field)
 {
     return (object[]) Get(field);
 }