From d023f2456179b1aeff718ed2770b99c45277774b Mon Sep 17 00:00:00 2001 From: Mira Leung Date: Fri, 9 Oct 2020 13:18:20 -0700 Subject: [PATCH] fix: support LRO package.name annotations --- .../api/generator/gapic/protoparser/Parser.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java b/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java index f667402210..ec7d6a83d5 100644 --- a/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java +++ b/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java @@ -64,6 +64,7 @@ public class Parser { private static final String COMMA = ","; private static final String COLON = ":"; + private static final String DOT = "."; private static final String DEFAULT_PORT = "443"; // Allow other parsers to access this. @@ -320,12 +321,23 @@ static LongrunningOperation parseLro( OperationInfo lroInfo = methodDescriptor.getOptions().getExtension(OperationsProto.operationInfo); + String responseTypeName = lroInfo.getResponseType(); + String responseTypePackage = ""; + if (responseTypeName.contains(DOT)) { + responseTypeName = responseTypeName.substring(responseTypeName.lastIndexOf(DOT) + 1); + } + String metadataTypeName = lroInfo.getMetadataType(); + if (metadataTypeName.contains(DOT)) { + metadataTypeName = metadataTypeName.substring(metadataTypeName.lastIndexOf(DOT) + 1); + } + Message responseMessage = messageTypes.get(responseTypeName); Message metadataMessage = messageTypes.get(metadataTypeName); Preconditions.checkNotNull( responseMessage, String.format("LRO response message %s not found", responseTypeName)); + // TODO(miraleung): Check that the packages are equal if those strings are not empty. Preconditions.checkNotNull( metadataMessage, String.format("LRO metadata message %s not found", metadataTypeName));