下面列出了com.google.protobuf.Descriptors.EnumDescriptor#getValues ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Finds an enum value in the given {@link EnumDescriptor} that matches the given JSON element,
* either by name if the current adapter is using {@link EnumSerialization#NAME}, otherwise by
* number. If matching by name, it uses the extension value if it is defined, otherwise it uses
* its default value.
*
* @throws IllegalArgumentException if a matching name/number was not found
*/
private EnumValueDescriptor findValueByNameAndExtension(EnumDescriptor desc,
JsonElement jsonElement) {
if (enumSerialization == EnumSerialization.NAME) {
// With enum name
for (EnumValueDescriptor enumDesc : desc.getValues()) {
String enumValue = getCustSerializedEnumValue(enumDesc.getOptions(), enumDesc.getName());
if (enumValue.equals(jsonElement.getAsString())) {
return enumDesc;
}
}
throw new IllegalArgumentException(
String.format("Unrecognized enum name: %s", jsonElement.getAsString()));
} else {
// With enum value
EnumValueDescriptor fieldValue = desc.findValueByNumber(jsonElement.getAsInt());
if (fieldValue == null) {
throw new IllegalArgumentException(
String.format("Unrecognized enum value: %s", jsonElement.getAsInt()));
}
return fieldValue;
}
}
private void validateEnum(@Nonnull String fieldName, @Nonnull EnumDescriptor oldEnumDescriptor, @Nonnull EnumDescriptor newEnumDescriptor) {
for (Descriptors.EnumValueDescriptor oldEnumValue : oldEnumDescriptor.getValues()) {
Descriptors.EnumValueDescriptor newEnumValue = newEnumDescriptor.findValueByNumber(oldEnumValue.getNumber());
if (newEnumValue == null) {
throw new MetaDataException("enum removes value",
LogMessageKeys.FIELD_NAME, fieldName);
}
}
}
static GraphQLEnumType convert(
EnumDescriptor descriptor, SchemaOptions schemaOptions) {
GraphQLEnumType.Builder builder = GraphQLEnumType.newEnum().name(getReferenceName(descriptor));
for (EnumValueDescriptor value : descriptor.getValues()) {
builder.value(
value.getName(),
value.getName(),
schemaOptions.commentsMap().get(value.getFullName()),
value.getOptions().getDeprecated() ? "deprecated in proto" : null);
}
return builder.build();
}
private void generateProtoFromDescriptor(EnumDescriptor descriptor,
Appendable out, String indent) throws IOException {
out.append(indent + "enum " + descriptor.getName() + " {\n");
for (EnumValueDescriptor valueDescriptor : descriptor.getValues()) {
generateProtoFromDescriptor(valueDescriptor, out, indent + " ");
}
out.append(indent + "}\n");
}
private static Object randomEnum(EnumDescriptor enumDescriptor) {
List<EnumValueDescriptor> enumConstants = enumDescriptor.getValues();
return enumConstants.get(RAND.nextInt(enumConstants.size()));
}
private EnumValueDescriptor getRandomEnum(EnumDescriptor enumD) {
List<EnumValueDescriptor> values = enumD.getValues();
return values.get(random.nextInt(values.size()));
}
private EnumValueDescriptor getRandomEnum(EnumDescriptor enumD) {
List<EnumValueDescriptor> values = enumD.getValues();
return values.get(random.nextInt(values.size()));
}