static Key fromFieldDescriptorOrUnknown(FieldDescriptorOrUnknown fieldDescriptorOrUnknown) { return fieldDescriptorOrUnknown.fieldDescriptor().isPresent() ? known(fieldDescriptorOrUnknown.fieldDescriptor().get().getNumber()) : unknown(fieldDescriptorOrUnknown.unknownFieldDescriptor().get()); }
@Override boolean matchesFieldDescriptor(Descriptor descriptor, FieldDescriptor fieldDescriptor) { return fieldDescriptor.getContainingType() == descriptor && fieldNumbers.contains(fieldDescriptor.getNumber()); }
@Override public boolean has(final GeneratedMessage message) { if (!hasHasMethod) { if (isOneofField) { return getOneofFieldNumber(message) == field.getNumber(); } return !get(message).equals(field.getDefaultValue()); } return (Boolean) invokeOrDie(hasMethod, message); } @Override
/** * Adds a field to the fieldsByNumber table. Throws an exception if a * field with the same containing type and number already exists. */ void addFieldByNumber(final FieldDescriptor field) throws DescriptorValidationException { final DescriptorIntPair key = new DescriptorIntPair(field.getContainingType(), field.getNumber()); final FieldDescriptor old = fieldsByNumber.put(key, field); if (old != null) { fieldsByNumber.put(key, old); throw new DescriptorValidationException(field, "Field number " + field.getNumber() + "has already been used in \"" + field.getContainingType().getFullName() + "\" by field \"" + old.getName() + "\"."); } }
private MapField<?, ?> getMapField(GeneratedMessage.Builder builder) { return (MapField<?, ?>) builder.internalGetMapField(field.getNumber()); }
private MapField<?, ?> getMapField(GeneratedMessageV3.Builder builder) { return (MapField<?, ?>) builder.internalGetMapField(field.getNumber()); }
private MapField<?, ?> getMapField(GeneratedMessageV3 message) { return (MapField<?, ?>) message.internalGetMapField(field.getNumber()); }
private MapField<?, ?> getMapField(GeneratedMessage message) { return (MapField<?, ?>) message.internalGetMapField(field.getNumber()); }
@Override public int getNumber() { return getDescriptor().getNumber(); }
@Override public Object getField(FieldDescriptor field) { checkFieldDescriptor(field); Object result = field.getNumber() == 1 ? getKey() : getValue(); // Convert enums to EnumValueDescriptor. if (field.getType() == FieldDescriptor.Type.ENUM) { result = field.getEnumType().findValueByNumberCreatingIfUnknown((Integer) result); } return result; }
@Override public boolean has(GeneratedMessage.Builder builder) { if (!hasHasMethod) { if (isOneofField) { return getOneofFieldNumber(builder) == field.getNumber(); } return !get(builder).equals(field.getDefaultValue()); } return (Boolean) invokeOrDie(hasMethodBuilder, builder); } @Override
@Override public boolean has(GeneratedMessageV3.Builder builder) { if (!hasHasMethod) { if (isOneofField) { return getOneofFieldNumber(builder) == field.getNumber(); } return !get(builder).equals(field.getDefaultValue()); } return (Boolean) invokeOrDie(hasMethodBuilder, builder); } @Override
@Override public boolean has(final GeneratedMessageV3 message) { if (!hasHasMethod) { if (isOneofField) { return getOneofFieldNumber(message) == field.getNumber(); } return !get(message).equals(field.getDefaultValue()); } return (Boolean) invokeOrDie(hasMethod, message); } @Override
@Override public Builder<K, V> clearField(FieldDescriptor field) { checkFieldDescriptor(field); if (field.getNumber() == 1) { clearKey(); } else { clearValue(); } return this; }
@Override public Message.Builder newBuilderForField(FieldDescriptor field) { checkFieldDescriptor(field);; // This method should be called for message fields and in a MapEntry // message only the value field can possibly be a message field. if (field.getNumber() != 2 || field.getJavaType() != FieldDescriptor.JavaType.MESSAGE) { throw new RuntimeException( "\"" + field.getFullName() + "\" is not a message value field."); } return ((Message) value).newBuilderForType(); }
@Override public Object getField(FieldDescriptor field) { checkFieldDescriptor(field); Object result = field.getNumber() == 1 ? getKey() : getValue(); // Convert enums to EnumValueDescriptor. if (field.getType() == FieldDescriptor.Type.ENUM) { result = field.getEnumType().findValueByNumberCreatingIfUnknown( (java.lang.Integer) result); } return result; }
private MapField<?, ?> getMutableMapField( GeneratedMessage.Builder builder) { return (MapField<?, ?>) builder.internalGetMutableMapField( field.getNumber()); }
private MapField<?, ?> getMutableMapField( GeneratedMessageV3.Builder builder) { return (MapField<?, ?>) builder.internalGetMutableMapField( field.getNumber()); }
@Override public boolean hasField(FieldDescriptor field) { checkFieldDescriptor(field); return field.getNumber() == 1 ? hasKey : hasValue; }
@Override public void accept(Descriptors.FieldDescriptor fieldDescriptor) { protoBufParsingInfos.add(new ProtoBufParsingInfo(fieldDescriptor.getNumber(), fieldDescriptor.getName(), fieldDescriptor.getType().name(), fieldDescriptor.toProto().getLabel().name(), null)); } });