private static Set<ProtoFile> getFilesForMessage(MessageType messageType, boolean messageOnly) { Set<ProtoFile> files = newFileSet(); files.add(messageType.getFile()); if (messageOnly) { return files; } for (Field field : messageType.getFields()) { TypeRef type = field.getType(); if (type.isMessage()) { files.addAll(getFilesForMessage(type.getMessageType(), type.isCyclic())); } } return files; }
private List<GrpcElementDocView> generateEnumFileElements( ModelTypeTable typeTable, SurfaceNamer namer, ProtoContainerElement containerElement) { ImmutableList.Builder<GrpcElementDocView> elements = ImmutableList.builder(); elements.addAll( elementDocTransformer.generateEnumDocs(typeTable, namer, containerElement.getEnums())); for (MessageType message : containerElement.getMessages()) { List<GrpcElementDocView> elementDocs = generateEnumFileElements(typeTable, namer, message); if (!elementDocs.isEmpty()) { GrpcMessageDocView.Builder messageView = GrpcMessageDocView.newBuilder(); messageView.name(namer.publicClassName(Name.upperCamel(message.getSimpleName()))); messageView.fullName(typeTable.getFullNameFor(TypeRef.of(message))); messageView.fileUrl(GapicParser.getFileUrl(message.getFile())); messageView.lines(namer.getDocLines(GapicParser.getDocString(message))); messageView.properties(ImmutableList.<ParamDocView>of()); messageView.elementDocs(elementDocs); messageView.packageName(message.getFile().getFullName()); elements.add(messageView.build()); } } return elements.build(); }
@VisitsBefore void visit(MessageType message) { // Add the message to the set of known types. addType(message.getLocation(), message.getFullName(), TypeRef.of(message)); // Add the message's package to the set of known packages addPackage(message.getFile().getFullName()); // Build the field-by-name map for this message, and record field simple names. Map<String, Field> fieldByName = Maps.newLinkedHashMap(); for (Field field : message.getFields()) { fieldNames.add(field.getSimpleName()); Field old = fieldByName.put(field.getSimpleName(), field); if (old != null) { model .getDiagReporter() .report( Diag.error( field.getLocation(), "Duplicate declaration of field '%s'. Previous location: %s", field.getSimpleName(), old.getLocation().getDisplayString())); } } message.setFieldByNameMap(ImmutableMap.copyOf(fieldByName)); }
private List<GrpcElementDocView> generateMessageDocs( GapicProductConfig productConfig, ModelTypeTable typeTable, SurfaceNamer namer, Collection<MessageType> messages) { ImmutableList.Builder<GrpcElementDocView> messageDocs = ImmutableList.builder(); for (MessageType message : messages) { // Doesn't have to document map entries because a dictionary is used. if (message.isMapEntry()) { continue; } GrpcMessageDocView.Builder doc = GrpcMessageDocView.newBuilder(); doc.name(namer.getMessageTypeName(typeTable, message)); doc.fullName(typeTable.getFullNameFor(TypeRef.of(message))); doc.fileUrl(GapicParser.getFileUrl(message.getFile())); doc.lines(namer.getDocLines(GapicParser.getDocString(message))); doc.properties( generateMessagePropertyDocs( typeTable, namer, FieldConfig.toFieldTypeIterableFromField(message.getFields()))); doc.elementDocs(generateElementDocs(productConfig, typeTable, namer, message)); doc.packageName(message.getFile().getFullName()); messageDocs.add(doc.build()); } return messageDocs.build(); }
@VisitsBefore void visit(MessageType message) { // Add the message to the set of known types. addType(message.getLocation(), message.getFullName(), TypeRef.of(message)); // Add the message's package to the set of known packages addPackage(message.getFile().getFullName()); // Build the field-by-name map for this message, and record field simple names. Map<String, Field> fieldByName = Maps.newLinkedHashMap(); for (Field field : message.getFields()) { fieldNames.add(field.getSimpleName()); Field old = fieldByName.put(field.getSimpleName(), field); if (old != null) { model .getDiagReporter() .report( Diag.error( field.getLocation(), "Duplicate declaration of field '%s'. Previous location: %s", field.getSimpleName(), old.getLocation().getDisplayString())); } } message.setFieldByNameMap(ImmutableMap.copyOf(fieldByName)); }
String name = namer.getProtoFileImportName( t.getProtoType().getMessageType().getFile().getSimpleName()); requireTypes.add(name);
Type.Builder coreTypeBuilder = Type.newBuilder().setName(message.getFullName()); coreTypeBuilder.setSourceContext( SourceContext.newBuilder().setFileName(message.getFile().getLocation().getDisplayString())); coreTypeBuilder.setSyntax(message.getSyntax());
Type.Builder coreTypeBuilder = Type.newBuilder().setName(message.getFullName()); coreTypeBuilder.setSourceContext( SourceContext.newBuilder().setFileName(message.getFile().getLocation().getDisplayString())); coreTypeBuilder.setSyntax(message.getSyntax());