/** * Construct a FieldAccessorTable for a particular message class without * initializing FieldAccessors. */ public FieldAccessorTable( final Descriptor descriptor, final String[] camelCaseNames) { this.descriptor = descriptor; this.camelCaseNames = camelCaseNames; fields = new FieldAccessor[descriptor.getFields().size()]; oneofs = new OneofAccessor[descriptor.getOneofs().size()]; initialized = false; }
/** * Construct a FieldAccessorTable for a particular message class without * initializing FieldAccessors. */ public FieldAccessorTable( final Descriptor descriptor, final String[] camelCaseNames) { this.descriptor = descriptor; this.camelCaseNames = camelCaseNames; fields = new FieldAccessor[descriptor.getFields().size()]; oneofs = new OneofAccessor[descriptor.getOneofs().size()]; initialized = false; }
+ parent.getName()); containingOneof = parent.getOneofs().get(proto.getOneofIndex()); containingOneof.fieldCount++; } else {
final Descriptors.Descriptor descriptor = message.getDescriptorForType(); for (OneofDescriptor oneOfDescriptor : descriptor.getOneofs()) { final Descriptors.FieldDescriptor fieldDescriptor = message.getOneofFieldDescriptor(oneOfDescriptor); setStructField(schema, message, result, fieldDescriptor);
+ parent.getName()); containingOneof = parent.getOneofs().get(proto.getOneofIndex()); containingOneof.fieldCount++; } else {
+ parent.getName()); containingOneof = parent.getOneofs().get(proto.getOneofIndex()); containingOneof.fieldCount++; } else {
@Nonnull @Override protected Message getUnionField(@Nonnull Descriptors.Descriptor unionDescriptor, @Nonnull Message storedRecord) { final List<Descriptors.OneofDescriptor> oneofs = unionDescriptor.getOneofs(); if (!oneofs.isEmpty()) { Descriptors.FieldDescriptor unionField = storedRecord.getOneofFieldDescriptor(oneofs.get(0)); if (unionField != null) { return (Message)storedRecord.getField(unionField); } } else { for (Descriptors.FieldDescriptor unionField : unionDescriptor.getFields()) { if (storedRecord.hasField(unionField)) { return (Message)storedRecord.getField(unionField); } } } throw new RecordSerializationException("Union record does not have any fields") .addLogInfo("unionDescriptorFullName", unionDescriptor.getFullName()) .addLogInfo("recordType", storedRecord.getDescriptorForType().getName()); }
/** * Construct a FieldAccessorTable for a particular message class without * initializing FieldAccessors. */ public FieldAccessorTable( final Descriptor descriptor, final String[] camelCaseNames) { this.descriptor = descriptor; this.camelCaseNames = camelCaseNames; fields = new FieldAccessor[descriptor.getFields().size()]; oneofs = new OneofAccessor[descriptor.getOneofs().size()]; initialized = false; }
/** * Construct a FieldAccessorTable for a particular message class without * initializing FieldAccessors. */ public FieldAccessorTable( final Descriptor descriptor, final String[] camelCaseNames) { this.descriptor = descriptor; this.camelCaseNames = camelCaseNames; fields = new FieldAccessor[descriptor.getFields().size()]; oneofs = new OneofAccessor[descriptor.getOneofs().size()]; initialized = false; }
protected void validateUnionDescriptor(Descriptors.Descriptor unionDescriptor) { final List<Descriptors.OneofDescriptor> oneofs = unionDescriptor.getOneofs(); if (!oneofs.isEmpty()) { if (oneofs.size() > 1) { throw new MetaDataException("Union descriptor has more than one oneof"); } if (oneofs.get(0).getFieldCount() != unionDescriptor.getFields().size()) { throw new MetaDataException("Union descriptor oneof must contain every field"); } } }