@Override public String toString() { return "enum " + getFullName(); }
@Override public String toString() { return "enum " + getFullName(); }
@Override public boolean apply(TypeRef type) { if (type.getKind() == kind) { if (type.isMessage()) { return type.getMessageType().getFullName().startsWith( typeNamePattern.substring(0, typeNamePattern.length() - 1)); } else if (type.isEnum()) { return type.getEnumType().getFullName().startsWith( typeNamePattern.substring(0, typeNamePattern.length() - 1)); } return false; } return false; } })
@Override public boolean apply(TypeRef type) { if (type.getKind() == kind) { if (type.isMessage()) { return type.getMessageType().getFullName().startsWith( typeNamePattern.substring(0, typeNamePattern.length() - 1)); } else if (type.isEnum()) { return type.getEnumType().getFullName().startsWith( typeNamePattern.substring(0, typeNamePattern.length() - 1)); } return false; } return false; } })
private static java.lang.String generateTypeUrl(TypeRef type) { java.lang.String name; if (type.isMessage()) { name = type.getMessageType().getFullName(); } else { name = type.getEnumType().getFullName(); } return DescriptorNormalization.TYPE_SERVICE_BASE_URL + "/" + name; }
private static java.lang.String generateTypeUrl(TypeRef type) { java.lang.String name; if (type.isMessage()) { name = type.getMessageType().getFullName(); } else { name = type.getEnumType().getFullName(); } return DescriptorNormalization.TYPE_SERVICE_BASE_URL + "/" + name; }
@Override public String toString() { String result; switch (kind) { case TYPE_MESSAGE: result = getMessageType().getFullName(); break; case TYPE_ENUM: result = getEnumType().getFullName(); break; default: result = getPrimitiveTypeName(); break; } if (card == Cardinality.REPEATED) { return "repeated " + result; } if (card == Cardinality.REQUIRED) { return "required " + result; } return result; }
@Override public String toString() { String result; switch (kind) { case TYPE_MESSAGE: result = getMessageType().getFullName(); break; case TYPE_ENUM: result = getEnumType().getFullName(); break; default: result = getPrimitiveTypeName(); break; } if (card == Cardinality.REPEATED) { return "repeated " + result; } if (card == Cardinality.REQUIRED) { return "required " + result; } return result; }
@Visits void reach(EnumType enumType) { markAsReachable(enumType); visitInScope(enumType.getValues()); // Check if default value is hidden, and whether the enum has unreachable descendants. for (EnumValue value : enumType.getValues()) { if (value.getIndex() == 0 && !isReachable(value)) { error( value, "The default value of '%s' cannot be hidden. %s.", enumType.getFullName(), reasonForUnreachable(value)); } if (!isReachable(value)) { hasUnreachableDescendants.add(enumType); } } }
@Visits void reach(EnumType enumType) { markAsReachable(enumType); visitInScope(enumType.getValues()); // Check if default value is hidden, and whether the enum has unreachable descendants. for (EnumValue value : enumType.getValues()) { if (value.getIndex() == 0 && !isReachable(value)) { error( value, "The default value of '%s' cannot be hidden. %s.", enumType.getFullName(), reasonForUnreachable(value)); } if (!isReachable(value)) { hasUnreachableDescendants.add(enumType); } } }
@VisitsBefore void visit(EnumType enumType) { // Add the enum type to the set of known types. addType(enumType.getLocation(), enumType.getFullName(), TypeRef.of(enumType)); // Build the field-by-name map for this enum type. Map<String, EnumValue> valueByName = Maps.newLinkedHashMap(); for (EnumValue value : enumType.getValues()) { EnumValue old = valueByName.put(value.getSimpleName(), value); if (old != null) { model .getDiagReporter() .report( Diag.error( value.getLocation(), "Duplicate declaration of enum value '%s'. Previous location: %s", value.getSimpleName(), old.getLocation().getDisplayString())); } } enumType.setValueByNameMap(ImmutableMap.copyOf(valueByName)); }
@VisitsBefore void visit(EnumType enumType) { // Add the enum type to the set of known types. addType(enumType.getLocation(), enumType.getFullName(), TypeRef.of(enumType)); // Build the field-by-name map for this enum type. Map<String, EnumValue> valueByName = Maps.newLinkedHashMap(); for (EnumValue value : enumType.getValues()) { EnumValue old = valueByName.put(value.getSimpleName(), value); if (old != null) { model .getDiagReporter() .report( Diag.error( value.getLocation(), "Duplicate declaration of enum value '%s'. Previous location: %s", value.getSimpleName(), old.getLocation().getDisplayString())); } } enumType.setValueByNameMap(ImmutableMap.copyOf(valueByName)); }
/** * Returns a proto representation that includes visible values only. Enum options and * source location are omitted since visibility isn't applicable for them. */ public com.google.protobuf.Enum getVisibleProto() { com.google.protobuf.Enum.Builder scopedEnum = com.google.protobuf.Enum.newBuilder() .setName(getFullName()); for (EnumValue value : values) { if (value.isReachable()) { scopedEnum.addEnumvalue(com.google.protobuf.EnumValue.newBuilder() .setName(value.getSimpleName()) .setNumber(value.getNumber())); } } return scopedEnum.build(); }
/** * Returns a proto representation that includes visible values only. Enum options and * source location are omitted since visibility isn't applicable for them. */ public com.google.protobuf.Enum getVisibleProto() { com.google.protobuf.Enum.Builder scopedEnum = com.google.protobuf.Enum.newBuilder() .setName(getFullName()); for (EnumValue value : values) { if (value.isReachable()) { scopedEnum.addEnumvalue(com.google.protobuf.EnumValue.newBuilder() .setName(value.getSimpleName()) .setNumber(value.getNumber())); } } return scopedEnum.build(); }
@VisitsBefore void normalize(EnumType enumType) { Enum.Builder coreEnumBuilder = Enum.newBuilder().setName(enumType.getFullName()); coreEnumBuilder.setSourceContext( SourceContext.newBuilder() .setFileName(enumType.getFile().getLocation().getDisplayString())); coreEnumBuilder.setSyntax(enumType.getSyntax()); for (EnumValue value : enumType.getReachableValues()) { com.google.protobuf.EnumValue.Builder coreEnumValueBuilder = com.google.protobuf.EnumValue.newBuilder(); // Use simple name for enum value, as otherwise client has to use // fully qualified name in the request. coreEnumValueBuilder.setName(value.getSimpleName()).setNumber(value.getNumber()); coreEnumValueBuilder.addAllOptions( DescriptorNormalization.getOptions(value.getProto(), includeDefaults)); coreEnumBuilder.addEnumvalue(coreEnumValueBuilder.build()); } coreEnumBuilder.addAllOptions( DescriptorNormalization.getOptions(enumType.getProto(), includeDefaults)); enums.add(coreEnumBuilder.build()); }
@VisitsBefore void normalize(EnumType enumType) { Enum.Builder coreEnumBuilder = Enum.newBuilder().setName(enumType.getFullName()); coreEnumBuilder.setSourceContext( SourceContext.newBuilder() .setFileName(enumType.getFile().getLocation().getDisplayString())); coreEnumBuilder.setSyntax(enumType.getSyntax()); for (EnumValue value : enumType.getReachableValues()) { com.google.protobuf.EnumValue.Builder coreEnumValueBuilder = com.google.protobuf.EnumValue.newBuilder(); // Use simple name for enum value, as otherwise client has to use // fully qualified name in the request. coreEnumValueBuilder.setName(value.getSimpleName()).setNumber(value.getNumber()); coreEnumValueBuilder.addAllOptions( DescriptorNormalization.getOptions(value.getProto(), includeDefaults)); coreEnumBuilder.addEnumvalue(coreEnumValueBuilder.build()); } coreEnumBuilder.addAllOptions( DescriptorNormalization.getOptions(enumType.getProto(), includeDefaults)); enums.add(coreEnumBuilder.build()); }