diff --git a/sdk-platform-java/gapic-generator-java/pom.xml b/sdk-platform-java/gapic-generator-java/pom.xml
index 18b0f8244e48..5d868eba8370 100644
--- a/sdk-platform-java/gapic-generator-java/pom.xml
+++ b/sdk-platform-java/gapic-generator-java/pom.xml
@@ -398,11 +398,6 @@
${junit.version}
test
-
- com.google.code.findbugs
- jsr305
- 3.0.2
-
com.google.api
api-common
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/AnnotationNode.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/AnnotationNode.java
index 7cb0f5ec37fa..514849603cea 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/AnnotationNode.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/AnnotationNode.java
@@ -19,8 +19,10 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class AnnotationNode implements AstNode {
public static AnnotationNode OVERRIDE =
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ClassDefinition.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ClassDefinition.java
index 1e09e39f4089..4697f284e6ef 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ClassDefinition.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ClassDefinition.java
@@ -21,8 +21,10 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class ClassDefinition implements AstNode {
// Optional.
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ConcreteReference.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ConcreteReference.java
index b768d5b2ff4f..da97852bf299 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ConcreteReference.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ConcreteReference.java
@@ -19,8 +19,10 @@
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class ConcreteReference implements Reference {
private static final String EXTENDS = "extends";
@@ -176,7 +178,7 @@ public boolean isWildcard() {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof ConcreteReference)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java
index 7184044598c2..a5873499ecd9 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java
@@ -23,7 +23,10 @@
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class JavaDocComment implements Comment {
@Override
@@ -48,11 +51,11 @@ public abstract static class Builder {
static final String PARAM_INDENT = " ";
// The lack of a getter for these local variables in the external class is WAI.
- String throwsType = null;
- String throwsDescription = null;
- String deprecated = null;
- String internalOnly = null;
- String returnDescription = null;
+ @Nullable String throwsType = null;
+ @Nullable String throwsDescription = null;
+ @Nullable String deprecated = null;
+ @Nullable String internalOnly = null;
+ @Nullable String returnDescription = null;
List paramsList = new ArrayList<>();
List componentsList = new ArrayList<>();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodDefinition.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodDefinition.java
index 6bd3bca9c532..1e6bbcd961e6 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodDefinition.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodDefinition.java
@@ -23,8 +23,10 @@
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class MethodDefinition implements AstNode {
static final Reference RUNTIME_EXCEPTION_REFERENCE =
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodInvocationExpr.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodInvocationExpr.java
index 2a0c2a45c48f..e40856a48707 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodInvocationExpr.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/MethodInvocationExpr.java
@@ -19,8 +19,10 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class MethodInvocationExpr implements Expr {
public abstract IdentifierNode methodIdentifier();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/Reference.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/Reference.java
index 4432c68616aa..92732a90de9a 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/Reference.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/Reference.java
@@ -16,8 +16,10 @@
import com.google.common.collect.ImmutableList;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public interface Reference extends AstNode {
@Override
void accept(AstNodeVisitor visitor);
@@ -38,11 +40,9 @@ public interface Reference extends AstNode {
// The nested types in left-to-right order, if any.
// Example: com.google.Foo.Bar.Car.ThisType will have the outer types listed in the order
// [Foo, Bar, Car].
- @Nullable
- ImmutableList enclosingClassNames();
+ @Nullable ImmutableList enclosingClassNames();
- @Nullable
- Reference wildcardUpperBound();
+ @Nullable Reference wildcardUpperBound();
Reference copyAndSetGenerics(List generics);
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ScopeNode.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ScopeNode.java
index cf4c5326dc21..83249892710f 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ScopeNode.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ScopeNode.java
@@ -14,6 +14,8 @@
package com.google.api.generator.engine.ast;
+import org.jspecify.annotations.Nullable;
+
public class ScopeNode implements AstNode {
private enum ScopeKind {
LOCAL, // Placeholder for local scopes.
@@ -54,7 +56,7 @@ public void accept(AstNodeVisitor visitor) {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof ScopeNode)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ThrowExpr.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ThrowExpr.java
index 5e4808d28aa9..1b5400ce2cf2 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ThrowExpr.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/ThrowExpr.java
@@ -16,8 +16,10 @@
import com.google.auto.value.AutoValue;
import com.google.common.base.Preconditions;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class ThrowExpr implements Expr {
// TODO(miraleung): Refactor with StringObjectValue and possibly with NewObjectExpr.
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TryCatchStatement.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TryCatchStatement.java
index 77cd964aed49..6cebf09774c8 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TryCatchStatement.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TryCatchStatement.java
@@ -20,9 +20,10 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class TryCatchStatement implements Statement {
@@ -61,7 +62,7 @@ public abstract static class Builder {
public abstract Builder setIsSampleCode(boolean isSampleCode);
- public Builder addCatch(@Nonnull VariableExpr variableExpr, List body) {
+ public Builder addCatch(VariableExpr variableExpr, List body) {
List catchVarExprs = new ArrayList<>(catchVariableExprs());
catchVarExprs.add(variableExpr);
setCatchVariableExprs(catchVarExprs);
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TypeNode.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TypeNode.java
index 12236842fccd..21b5f136ce73 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TypeNode.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/TypeNode.java
@@ -21,8 +21,10 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class TypeNode implements AstNode, Comparable {
static final Reference EXCEPTION_REFERENCE = ConcreteReference.withClazz(Exception.class);
@@ -254,7 +256,7 @@ public void accept(AstNodeVisitor visitor) {
// Java overrides.
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof TypeNode)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VaporReference.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VaporReference.java
index 0c5b976a180c..61a1f11ee491 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VaporReference.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VaporReference.java
@@ -20,8 +20,10 @@
import java.util.Collections;
import java.util.List;
import java.util.Objects;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class VaporReference implements Reference {
private static final String DOT = ".";
@@ -109,7 +111,7 @@ public boolean isWildcard() {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof VaporReference)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VariableExpr.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VariableExpr.java
index f882c97e8d3b..5abc82fe3226 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VariableExpr.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/ast/VariableExpr.java
@@ -22,8 +22,10 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class VariableExpr implements Expr {
public abstract Variable variable();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java
index 1d834043c863..b6e9d23a4ad6 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/engine/writer/ImportWriterVisitor.java
@@ -69,9 +69,10 @@
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class ImportWriterVisitor implements AstNodeVisitor {
private static final String DOT = ".";
private static final String PKG_JAVA_LANG = "java.lang";
@@ -91,12 +92,12 @@ public void clear() {
importShortNames.clear();
}
- public void initialize(@Nonnull String currentPackage) {
+ public void initialize(String currentPackage) {
this.currentPackage = currentPackage;
currentClassName = null;
}
- public void initialize(@Nonnull String currentPackage, @Nonnull String currentClassName) {
+ public void initialize(String currentPackage, String currentClassName) {
this.currentPackage = currentPackage;
this.currentClassName = currentClassName;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java
index 5bd24bdbd0f0..ff5abc234842 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java
@@ -32,7 +32,10 @@
import com.google.common.base.Strings;
import java.util.logging.Logger;
import javax.annotation.Generated;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class ClientLibraryPackageInfoComposer {
private static final Logger LOGGER =
@@ -47,7 +50,7 @@ public class ClientLibraryPackageInfoComposer {
private static final String SAMPLE_CODE_HEADER_PATTERN = "Sample for %s:";
private static final String SERVICE_DESCRIPTION_HEADER_PATTERN = "Service Description: %s";
- public static GapicPackageInfo generatePackageInfo(GapicContext context) {
+ public static @Nullable GapicPackageInfo generatePackageInfo(GapicContext context) {
if (!context.containsServices()) {
LOGGER.warning("Generating empty package info since no services were found");
return null;
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/Composer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/Composer.java
index 288b02e713f0..edb180676c82 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/Composer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/Composer.java
@@ -43,7 +43,10 @@
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class Composer {
public static List composeServiceClasses(GapicContext context) {
List clazzes = new ArrayList<>();
@@ -53,7 +56,7 @@ public static List composeServiceClasses(GapicContext context) {
return addApacheLicense(prepareExecutableSamples(clazzes));
}
- public static GapicPackageInfo composePackageInfo(GapicContext context) {
+ public static @Nullable GapicPackageInfo composePackageInfo(GapicContext context) {
if (!context.containsServices()) {
return null;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/comment/ServiceClientCommentComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/comment/ServiceClientCommentComposer.java
index 64ea4adf7cc5..e3ec116173d5 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/comment/ServiceClientCommentComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/comment/ServiceClientCommentComposer.java
@@ -32,6 +32,7 @@
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
+import org.jspecify.annotations.Nullable;
public class ServiceClientCommentComposer {
// Tokens.
@@ -103,7 +104,7 @@ public static List createClassHeaderComments(
String classMethodSampleCode,
String credentialsSampleCode,
String endpointSampleCode,
- String transportSampleCode,
+ @Nullable String transportSampleCode,
String primaryTransport,
String secondaryTransport) {
JavaDocComment.Builder classHeaderJavadocBuilder = JavaDocComment.builder();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubClassComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubClassComposer.java
index 51e6f410c079..354746e0fbc6 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubClassComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubClassComposer.java
@@ -55,6 +55,7 @@
import java.util.stream.Collectors;
import javax.annotation.Generated;
import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
public abstract class AbstractServiceStubClassComposer implements ClassComposer {
@@ -214,7 +215,7 @@ private MethodDefinition createCallableGetterHelper(
}
private List createOperationsStubGetters(
- TypeStore typeStore, TypeNode operationsStubType) {
+ TypeStore typeStore, @Nullable TypeNode operationsStubType) {
List getters = new ArrayList<>();
Iterator operationStubNameIt =
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubSettingsClassComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubSettingsClassComposer.java
index 22cf6b0dfc61..303cf926cf9e 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubSettingsClassComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceStubSettingsClassComposer.java
@@ -123,8 +123,8 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Generated;
-import javax.annotation.Nullable;
import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
public abstract class AbstractServiceStubSettingsClassComposer implements ClassComposer {
private static final Statement EMPTY_LINE_STATEMENT = EmptyLineStatement.create();
@@ -1899,8 +1899,8 @@ protected List createNestedClassCreateDefaultMethods(
protected MethodDefinition createNestedClassCreateDefaultMethod(
TypeStore typeStore,
String methodName,
- String defaultTransportChannelProvider,
- String defaultTransportChannelProviderBuilder,
+ @Nullable String defaultTransportChannelProvider,
+ @Nullable String defaultTransportChannelProviderBuilder,
String defaultApiClientHeaderProviderBuilder) {
List bodyStatements = new ArrayList<>();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java
index 6cdf49e38d4c..57bd55cce095 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java
@@ -99,8 +99,8 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.annotation.Generated;
-import javax.annotation.Nullable;
import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
public abstract class AbstractTransportServiceStubClassComposer implements ClassComposer {
private static final List AIP_STANDARDS_METHODS =
@@ -912,8 +912,7 @@ protected List createLongRunningClient(Service service, TypeStore typ
return ImmutableList.of();
}
- @Nullable
- protected VariableExpr declareLongRunningClient() {
+ protected @Nullable VariableExpr declareLongRunningClient() {
return null;
}
@@ -1537,8 +1536,7 @@ private static Predicate shouldAutoPopulate(Message methodRequestMessage
* The Resource Name Extractor should only be generated if the request contains a field that has
* resource reference (see {@link Field#hasResourceReference()})
*/
- @Nullable
- protected LambdaExpr createResourceNameExtractorClassInstance(
+ protected @Nullable LambdaExpr createResourceNameExtractorClassInstance(
Service service,
Method method,
ImmutableMap messageTypes,
@@ -1679,7 +1677,7 @@ protected LambdaExpr createResourceNameExtractorClassInstance(
}
// Find the first field that has resource reference in a request message
- private static Field getDestinationResourceIdField(
+ private static @Nullable Field getDestinationResourceIdField(
Method method, ImmutableMap messageTypes) {
if (method.inputType().reference() == null
|| method.inputType().reference().fullName() == null) {
@@ -1987,7 +1985,7 @@ private static boolean isAipStandardMethod(List standards, String method
return standards.stream().anyMatch(standard -> standard.equalsIgnoreCase(methodName));
}
- private static Set extractLiteralSegments(String pattern) {
+ private static Set extractLiteralSegments(@Nullable String pattern) {
if (pattern == null || pattern.isEmpty()) {
return new HashSet<>();
}
@@ -1999,7 +1997,8 @@ private static Set extractLiteralSegments(String pattern) {
}
}
- private static String extractCanonicalResourceName(String pattern, Set knownResources) {
+ private static String extractCanonicalResourceName(
+ @Nullable String pattern, @Nullable Set knownResources) {
if (pattern == null
|| pattern.isEmpty()
|| knownResources == null
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/TransportContext.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/TransportContext.java
index ab98a86b18b5..d156d3f3b98d 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/TransportContext.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/common/TransportContext.java
@@ -20,8 +20,10 @@
import com.google.api.generator.gapic.model.Transport;
import com.google.auto.value.AutoValue;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class TransportContext {
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java
index 3669e9f77e99..bd2c80e28e33 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java
@@ -54,7 +54,10 @@
import java.util.Optional;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class DefaultValueComposer {
private static final TypeNode OPERATION_TYPE =
TypeNode.withReference(ConcreteReference.withClazz(Operation.class));
@@ -120,7 +123,7 @@ public static Expr createValue(
Map resourceNames,
Map messageTypes,
Map valuePatterns,
- HttpBindings bindings) {
+ @Nullable HttpBindings bindings) {
if (field.isRepeated()) {
ConcreteReference.Builder refBuilder =
ConcreteReference.builder().setClazz(field.isMap() ? HashMap.class : ArrayList.class);
@@ -263,7 +266,7 @@ static Expr createResourceHelperValue(
List resnames,
String fieldOrMessageName,
boolean allowAnonResourceNameClass,
- HttpBindings bindings) {
+ @Nullable HttpBindings bindings) {
if (isChildType) {
resourceName = findParentResource(resourceName, resnames).orElse(resourceName);
@@ -547,7 +550,7 @@ public static Expr createSimplePagedResponseValue(
@VisibleForTesting
static AnonymousClassExpr createAnonymousResourceNameClassValue(
- String fieldOrMessageName, HttpBindings matchedBindings) {
+ String fieldOrMessageName, @Nullable HttpBindings matchedBindings) {
TypeNode stringMapType =
TypeNode.withReference(
ConcreteReference.builder()
@@ -649,7 +652,7 @@ static AnonymousClassExpr createAnonymousResourceNameClassValue(
.build();
}
- public static String constructValueMatchingPattern(String fieldName, String pattern) {
+ public static String constructValueMatchingPattern(String fieldName, @Nullable String pattern) {
if (pattern == null || pattern.isEmpty()) {
return fieldName + fieldName.hashCode();
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/grpc/MockServiceImplClassComposer.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/grpc/MockServiceImplClassComposer.java
index d6573f026dae..ae09a6c86a05 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/grpc/MockServiceImplClassComposer.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/composer/grpc/MockServiceImplClassComposer.java
@@ -62,7 +62,10 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Generated;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class MockServiceImplClassComposer implements ClassComposer {
private static final MockServiceImplClassComposer INSTANCE = new MockServiceImplClassComposer();
private static final String IMPL_BASE_PATTERN = "%sImplBase";
@@ -464,7 +467,7 @@ private static MethodDefinition createOnCompletedJavaMethod(
private static Statement createHandleObjectStatement(
Method protoMethod,
- VariableExpr requestArgVarExpr,
+ @Nullable VariableExpr requestArgVarExpr,
VariableExpr responseObserverVarExpr,
VariableExpr localResponseVarExpr) {
List ifBodyExprs = new ArrayList<>();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Field.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Field.java
index ca2a98b56d27..ebb9240319bc 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Field.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Field.java
@@ -19,8 +19,10 @@
import com.google.auto.value.AutoValue;
import java.util.Objects;
import java.util.Optional;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class Field {
// The field's canonical name, potentially post-processed by conflict resolution logic.
@@ -87,7 +89,7 @@ public boolean canBeAutoPopulated() {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof Field)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicBatchingSettings.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicBatchingSettings.java
index 2f7d4de00d84..19214538ad4c 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicBatchingSettings.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicBatchingSettings.java
@@ -17,8 +17,10 @@
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class GapicBatchingSettings {
public enum FlowControlLimitExceededBehavior {
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicContext.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicContext.java
index 680573bfdb50..dd096e11400f 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicContext.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/GapicContext.java
@@ -25,8 +25,10 @@
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class GapicContext {
// Keep a non-AutoValue reference to GapicMetadata, since we need to update
@@ -69,8 +71,7 @@ public GapicMetadata gapicMetadata() {
@Nullable
public abstract GapicServiceConfig serviceConfig();
- @Nullable
- public abstract com.google.api.Service serviceYamlProto();
+ public abstract com.google.api.@Nullable Service serviceYamlProto();
@Nullable
public abstract String repo();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java
index ae9194eeb2b7..9e37b61f55ef 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java
@@ -23,8 +23,10 @@
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class HttpBindings {
public enum HttpVerb {
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/LongrunningOperation.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/LongrunningOperation.java
index e23e8a6ee3f8..70e259c186ca 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/LongrunningOperation.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/LongrunningOperation.java
@@ -16,8 +16,10 @@
import com.google.api.generator.engine.ast.TypeNode;
import com.google.auto.value.AutoValue;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class LongrunningOperation {
public abstract TypeNode responseType();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Message.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Message.java
index 2866e8462410..664c6f888508 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Message.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Message.java
@@ -31,8 +31,10 @@
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class Message {
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Method.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Method.java
index 66acd065a3f8..45d8dabfaf98 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Method.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Method.java
@@ -19,8 +19,10 @@
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class Method {
public enum Stream {
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/MethodArgument.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/MethodArgument.java
index e13deda713c8..e1bde1392246 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/MethodArgument.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/MethodArgument.java
@@ -18,6 +18,7 @@
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import java.util.List;
+import org.jspecify.annotations.Nullable;
@AutoValue
public abstract class MethodArgument implements Comparable {
@@ -47,7 +48,7 @@ public int compareTo(MethodArgument other) {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof MethodArgument)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceName.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceName.java
index 9a01bf6dba08..4c27b376fd62 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceName.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceName.java
@@ -26,8 +26,10 @@
import com.google.common.collect.ImmutableMap;
import java.util.List;
import java.util.Objects;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class ResourceName {
static final String SLASH = "/";
@@ -128,7 +130,7 @@ public static ResourceName createWildcard(String resourceTypeString, String pakk
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof ResourceName)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceReference.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceReference.java
index 8140a8c2318d..cb996488d085 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceReference.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/ResourceReference.java
@@ -16,6 +16,7 @@
import com.google.api.generator.gapic.utils.ResourceNameConstants;
import com.google.auto.value.AutoValue;
+import org.jspecify.annotations.Nullable;
@AutoValue
public abstract class ResourceReference {
@@ -29,7 +30,7 @@ public boolean isOnlyWildcard() {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (!(o instanceof ResourceReference)) {
return false;
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Service.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Service.java
index 656bf6bbd3af..835f086ed5e8 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Service.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/Service.java
@@ -21,14 +21,15 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import java.util.List;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
@AutoValue
public abstract class Service {
public abstract String name();
- @Nullable
- public abstract String apiVersion();
+ public abstract @Nullable String apiVersion();
public abstract String defaultHost();
@@ -48,8 +49,7 @@ public abstract class Service {
public abstract ImmutableList methods();
- @Nullable
- public abstract String description();
+ public abstract @Nullable String description();
public boolean hasDescription() {
return !Strings.isNullOrEmpty(description());
@@ -79,7 +79,7 @@ public String packageVersion() {
return "";
}
- public Method operationPollingMethod() {
+ public @Nullable Method operationPollingMethod() {
for (Method method : methods()) {
if (method.isOperationPollingMethod()) {
return method;
@@ -88,7 +88,7 @@ public Method operationPollingMethod() {
return null;
}
- public TypeNode operationServiceStubType() {
+ public @Nullable TypeNode operationServiceStubType() {
for (Method method : methods()) {
if (method.hasLro() && method.lro().operationServiceStubType() != null) {
// All methods within the same service must have the same operationServiceTypeName if
@@ -99,7 +99,7 @@ public TypeNode operationServiceStubType() {
return null;
}
- public TypeNode operationType() {
+ public @Nullable TypeNode operationType() {
for (Method method : methods()) {
if (method.hasLro() && method.lro().operationServiceStubType() != null) {
return method.outputType();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/SourceCodeInfoLocation.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/SourceCodeInfoLocation.java
index f39cb3953066..2256716d1de3 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/SourceCodeInfoLocation.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/model/SourceCodeInfoLocation.java
@@ -15,20 +15,21 @@
package com.google.api.generator.gapic.model;
import com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location;
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NullMarked;
/**
* A light wrapper around SourceCodeInfo.Location to provide cleaner protobuf comments. Please see
* additional documentation on descriptor.proto.
*/
+@NullMarked
public class SourceCodeInfoLocation {
- @Nonnull private final Location location;
+ private final Location location;
private SourceCodeInfoLocation(Location location) {
this.location = location;
}
- public static SourceCodeInfoLocation create(@Nonnull Location location) {
+ public static SourceCodeInfoLocation create(Location location) {
return new SourceCodeInfoLocation(location);
}
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/HttpRuleParser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/HttpRuleParser.java
index 0ea1c5aa456e..ab35b7afbc2d 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/HttpRuleParser.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/HttpRuleParser.java
@@ -40,13 +40,16 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class HttpRuleParser {
private static final String ASTERISK = "*";
private static final Pattern TEMPLATE_VALS_PATTERN =
Pattern.compile("\\{(?[\\w.]*)=(?[^}]+)}");
- public static HttpBindings parse(
+ public static @Nullable HttpBindings parse(
MethodDescriptor protoMethod, Message inputMessage, Map messageTypes) {
MethodOptions methodOptions = protoMethod.getOptions();
if (!methodOptions.hasExtension(AnnotationsProto.http)) {
@@ -131,9 +134,9 @@ private static HttpBindings parseHttpRuleHelper(
private static Set validateAndConstructHttpBindings(
Set paramNames,
- Message inputMessage,
+ @Nullable Message inputMessage,
Map messageTypes,
- Map patternSampleValues) {
+ @Nullable Map patternSampleValues) {
ImmutableSortedSet.Builder httpBindings = ImmutableSortedSet.naturalOrder();
for (String paramName : paramNames) {
@@ -232,7 +235,7 @@ private static void checkHttpFieldIsValid(String binding, Message inputMessage,
String.format(messageFormat, field.name(), inputMessage.name(), field.type()));
}
- private static Map constructPathValuePatterns(String pattern) {
+ private static Map constructPathValuePatterns(@Nullable String pattern) {
Map varPattern = new HashMap<>();
if (pattern == null || pattern.isEmpty()) {
return varPattern;
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java
index 234c72cac88a..b8c0fb76e8e7 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java
@@ -90,7 +90,10 @@
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class Parser {
enum SelectiveGapicType {
// Methods will be generated and exposed externally as usual.
@@ -950,7 +953,7 @@ private static String fetchTypeFullName(String typeName, MethodDescriptor method
}
@VisibleForTesting
- static LongrunningOperation parseLro(
+ static @Nullable LongrunningOperation parseLro(
String servicePackage, MethodDescriptor methodDescriptor, Map messageTypes) {
MethodOptions methodOptions = methodDescriptor.getOptions();
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceNameParser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceNameParser.java
index b03d8aff061a..227dd3c550ec 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceNameParser.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceNameParser.java
@@ -35,7 +35,10 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class ResourceNameParser {
/** Returns a map of resource types (strings) to ResourceName POJOs. */
public static Map parseResourceNames(
@@ -142,7 +145,7 @@ private static Optional createResourceName(
}
private static Optional createResourceName(
- ResourceDescriptor protoResource, String pakkage, String parentMessageName) {
+ ResourceDescriptor protoResource, String pakkage, @Nullable String parentMessageName) {
// We may need to modify this list.
List patterns = new ArrayList<>(protoResource.getPatternList());
Preconditions.checkState(
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceReferenceParser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceReferenceParser.java
index 06ccf2ec27d6..f16e7a900c0e 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceReferenceParser.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/ResourceReferenceParser.java
@@ -29,8 +29,10 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class ResourceReferenceParser {
private static final String EMPTY_STRING = "";
private static final String LEFT_BRACE = "{";
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/RoutingRuleParser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/RoutingRuleParser.java
index 33c34ff53269..f3cb6007139b 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/RoutingRuleParser.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/RoutingRuleParser.java
@@ -27,10 +27,13 @@
import com.google.protobuf.Descriptors.MethodDescriptor;
import java.util.Map;
import java.util.Set;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+@NullMarked
public class RoutingRuleParser {
- public static RoutingHeaderRule parse(
+ public static @Nullable RoutingHeaderRule parse(
MethodDescriptor protoMethod, Message inputMessage, Map messageTypes) {
MethodOptions methodOptions = protoMethod.getOptions();
if (!methodOptions.hasExtension(RoutingProto.routing)) {
diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParser.java
index 28ae95c92607..89d669e0b36f 100644
--- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParser.java
+++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParser.java
@@ -35,7 +35,8 @@
import com.google.protobuf.Descriptors.OneofDescriptor;
import com.google.protobuf.Descriptors.ServiceDescriptor;
import java.util.Map;
-import javax.annotation.Nullable;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
/**
* A helper class which provides protocol buffer source info for descriptors.
@@ -48,6 +49,7 @@
* If you think you need this functionality in a thread-safe context, feel free to suggest a
* refactor.
*/
+@NullMarked
public class SourceCodeInfoParser {
/**
* A map from file descriptors to the analyzed source info, stored as a multimap from a path of
@@ -60,8 +62,7 @@ public class SourceCodeInfoParser {
private final Map