@Override public void serialize(Value value, JsonGenerator gen, SerializerProvider provider) throws IOException { switch (value.getType()) { case BOOLEAN: gen.writeBoolean(value.getBoolean()); break; case INTEGER: gen.writeNumber(value.getInt64()); break; case FLOAT: gen.writeNumber(value.getDouble()); break; case STRING: gen.writeString(value.getString()); break; case ENUM: gen.writeString(value.getEnumName()); break; case MESSAGE: gen.writeObject(value.getMessage()); break; default: throw new IllegalStateException(String.valueOf(value.getType())); } } }
@Override public void serialize(Value value, JsonGenerator gen, SerializerProvider provider) throws IOException { switch (value.getType()) { case BOOLEAN: gen.writeBoolean(value.getBoolean()); break; case INTEGER: gen.writeNumber(value.getInt64()); break; case FLOAT: gen.writeNumber(value.getDouble()); break; case STRING: gen.writeString(value.getString()); break; case ENUM: gen.writeString(value.getEnumName()); break; case MESSAGE: gen.writeObject(value.getMessage()); break; default: throw new IllegalStateException(String.valueOf(value.getType())); } } }
private void checkDuplicateEnumConstantValues(Enum anEnum, List<EnumConstant> constants) { DynamicMessage.Value allowAlias = anEnum.getOptions().get(ALLOW_ALIAS); if (allowAlias != null && allowAlias.isBooleanType() && allowAlias.getBoolean()) { // skip this check if aliases are allowed return; } Map<Integer, EnumConstant> constantByValue = new HashMap<>(); for (EnumConstant constant : constants) { Integer value = constant.getValue(); if (constantByValue.containsKey(value)) { throw new ParserException(constant, "Duplicate enum constant value: %d", value); } constantByValue.put(value, constant); } }
private Object transformValueToObject(Value value) { switch (value.getType()) { case BOOLEAN: return value.getBoolean(); case INTEGER: return value.getInt64(); case FLOAT: return value.getDouble(); case STRING: return value.getString(); case ENUM: return value.getEnumName(); case MESSAGE: return value.getMessage(); default: return value; } }
private void checkDuplicateEnumConstantValues(Enum anEnum, List<EnumConstant> constants) { DynamicMessage.Value allowAlias = anEnum.getOptions().get(ALLOW_ALIAS); if (allowAlias != null && allowAlias.isBooleanType() && allowAlias.getBoolean()) { // skip this check if aliases are allowed return; } Map<Integer, EnumConstant> constantByValue = new HashMap<>(); for (EnumConstant constant : constants) { Integer value = constant.getValue(); if (constantByValue.containsKey(value)) { throw new ParserException(constant, "Duplicate enum constant value: %d", value); } constantByValue.put(value, constant); } }
private Object transformValueToObject(Value value) { switch (value.getType()) { case BOOLEAN: return value.getBoolean(); case INTEGER: return value.getInt64(); case FLOAT: return value.getDouble(); case STRING: return value.getString(); case ENUM: return value.getEnumName(); case MESSAGE: return value.getMessage(); default: return value; } }
public boolean isMapEntry() { DynamicMessage.Value value = this.getOptions().get(MessageParseListener.OPTION_MAP_ENTRY); return value != null && value.isBooleanType() && value.getBoolean(); } }
public boolean isMapEntry() { DynamicMessage.Value value = this.getOptions().get(MessageParseListener.OPTION_MAP_ENTRY); return value != null && value.isBooleanType() && value.getBoolean(); } }
public static boolean isPacked(Field protoField) { DynamicMessage.Value dynamicMessageValue = protoField.getOptions().get("packed"); if (dynamicMessageValue != null) { return dynamicMessageValue.getBoolean(); } return isSupportPacked(protoField); }