Add JSpecify annotations to normalized, schema, and util classes (Wave 5) by dondonz · Pull Request #4303 · graphql-java/graphql-java · GitHub
Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
7a3d03f
Add JSpecify agent team orchestrator prompt
claude Feb 28, 2026
b30585a
Move to .claude folder
dondonz Feb 28, 2026
18cd241
Add JSpecify annotations to QueryComplexityCalculator
dondonz Feb 28, 2026
fc88122
Add JSpecify annotations to AbortExecutionException
dondonz Feb 28, 2026
d71b245
Add JSpecify annotations to ConditionalNodeDecision
dondonz Feb 28, 2026
f79e9ea
Add JSpecify annotations to AsyncExecutionStrategy
dondonz Feb 28, 2026
3194a43
Add JSpecify annotations to QueryComplexityInfo
dondonz Feb 28, 2026
119d6dd
Add JSpecify annotations to AsyncSerialExecutionStrategy
dondonz Feb 28, 2026
ce144ba
Add JSpecify annotations to QueryDepthInfo
dondonz Feb 28, 2026
7765059
Add JSpecify annotations to CoercedVariables
dondonz Feb 28, 2026
7c8569a
Add JSpecify annotations to QueryReducer
dondonz Feb 28, 2026
6801331
Add JSpecify annotations to QueryAppliedDirective
dondonz Feb 28, 2026
6035167
Add JSpecify annotations to DataFetcherExceptionHandlerParameters
dondonz Feb 28, 2026
dfae148
Add JSpecify annotations to DataFetcherExceptionHandlerResult
dondonz Feb 28, 2026
460ee6b
Add JSpecify annotations to QueryTransformer
dondonz Feb 28, 2026
4427846
Add JSpecify annotations to DefaultValueUnboxer
dondonz Feb 28, 2026
32ecef7
Add JSpecify annotations to QueryAppliedDirectiveArgument
dondonz Feb 28, 2026
f223706
Add JSpecify annotations to QueryTraversalOptions
dondonz Feb 28, 2026
bfe03d0
Add JSpecify annotations to QueryVisitor
dondonz Feb 28, 2026
8b7d7a2
Add JSpecify annotations to ExecutionContext
dondonz Feb 28, 2026
1d3a502
Add JSpecify annotations to ExecutionId
dondonz Feb 28, 2026
ed60978
Add JSpecify annotations to QueryDirectives
dondonz Feb 28, 2026
24aa942
Add JSpecify annotations to QueryVisitorFieldArgumentEnvironment
dondonz Feb 28, 2026
d92048b
Add JSpecify annotations to QueryVisitorFieldArgumentInputValue
dondonz Feb 28, 2026
1ebd551
Add JSpecify annotations to FieldValidationInstrumentation
dondonz Feb 28, 2026
c3bda94
Add JSpecify annotations to QueryVisitorFieldArgumentValueEnvironment
dondonz Feb 28, 2026
560b28d
Add JSpecify annotations to SimpleFieldValidation
dondonz Feb 28, 2026
b540dbb
Add JSpecify annotations to InstrumentationCreateStateParameters
dondonz Feb 28, 2026
e54951c
Add JSpecify annotations to ExecutionStepInfo
dondonz Feb 28, 2026
f9c46df
Add JSpecify annotations to QueryVisitorFieldEnvironment
dondonz Feb 28, 2026
f99d27b
Add JSpecify annotations to InstrumentationExecuteOperationParameters
dondonz Feb 28, 2026
52a1a56
Add JSpecify annotations to QueryVisitorFragmentDefinitionEnvironment
dondonz Feb 28, 2026
6caa99b
Add JSpecify annotations to QueryVisitorFragmentSpreadEnvironment
dondonz Feb 28, 2026
37f4c59
Add JSpecify annotations to QueryVisitorInlineFragmentEnvironment
dondonz Feb 28, 2026
87e0c39
Add JSpecify annotations to QueryVisitorStub
dondonz Feb 28, 2026
a559997
Add JSpecify annotations to InstrumentationExecutionParameters
dondonz Feb 28, 2026
fd7834c
Add JSpecify annotations to InstrumentationExecutionStrategyParameters
dondonz Feb 28, 2026
760c033
Add JSpecify annotations to ExecutionStrategyParameters
dondonz Feb 28, 2026
0a64cb3
Add JSpecify annotations to InstrumentationFieldCompleteParameters
dondonz Feb 28, 2026
4529690
Add JSpecify annotations to FetchedValue
dondonz Feb 28, 2026
6286c17
Add JSpecify annotations to InstrumentationFieldFetchParameters
dondonz Feb 28, 2026
8df475d
Add JSpecify annotations to InstrumentationFieldParameters
dondonz Feb 28, 2026
1f8ce61
Add JSpecify annotations to FieldValueInfo
dondonz Feb 28, 2026
63677a1
Add JSpecify annotations to InstrumentationValidationParameters
dondonz Feb 28, 2026
bea6679
Add JSpecify annotations to InputMapDefinesTooManyFieldsException
dondonz Feb 28, 2026
0b6534c
Add JSpecify annotations to TracingInstrumentation
dondonz Feb 28, 2026
7197bd9
Add JSpecify annotations to ValueTraverser
dondonz Feb 28, 2026
016e560
Add JSpecify annotations to MergedSelectionSet
dondonz Feb 28, 2026
d372306
Add JSpecify annotations to MissingRootTypeException
dondonz Feb 28, 2026
9063da8
Add JSpecify annotations to TracingSupport
dondonz Feb 28, 2026
df504d2
Add JSpecify annotations to NonNullableValueCoercedAsNullException
dondonz Feb 28, 2026
bc5689f
Add JSpecify annotations to NormalizedVariables
dondonz Feb 28, 2026
9de2bea
Add JSpecify annotations to PreparsedDocumentEntry
dondonz Feb 28, 2026
4b69632
Add JSpecify annotations to OneOfNullValueException
dondonz Feb 28, 2026
8bb5d40
Add JSpecify annotations to ApolloPersistedQuerySupport
dondonz Feb 28, 2026
11d09ce
Add JSpecify annotations to OneOfTooManyKeysException
dondonz Feb 28, 2026
3d4e99f
Add JSpecify annotations to InMemoryPersistedQueryCache
dondonz Feb 28, 2026
1154e30
Add JSpecify annotations to ResultNodesInfo
dondonz Feb 28, 2026
45ed448
Add JSpecify annotations to PersistedQueryCacheMiss
dondonz Feb 28, 2026
d7d5a82
Add JSpecify annotations to PersistedQueryIdInvalid
dondonz Feb 28, 2026
100c2cd
Add JSpecify annotations to PersistedQueryNotFound
dondonz Feb 28, 2026
4c004a1
Add JSpecify annotations to ResultPath
dondonz Feb 28, 2026
3e190f3
Add JSpecify annotations to DelegatingSubscription
dondonz Feb 28, 2026
e540440
Add JSpecify annotations to SimpleDataFetcherExceptionHandler
dondonz Feb 28, 2026
e9fd9e9
Add JSpecify annotations to SubscriptionPublisher
dondonz Feb 28, 2026
76f195c
Add JSpecify annotations to SubscriptionExecutionStrategy
dondonz Feb 28, 2026
9db1bde
Add JSpecify annotations to UnknownOperationException
dondonz Feb 28, 2026
2529914
Add JSpecify annotations to UnresolvedTypeException
dondonz Feb 28, 2026
b3563cf
Review fixes: correct JSpecify annotations for Wave 1 classes
dondonz Feb 28, 2026
30581c8
Remove annotated Wave 1 classes from JSpecify exemption list
dondonz Mar 1, 2026
bb25aed
Clarify jspecify-annotate prompt: public API only, fix exemption cleanup
dondonz Mar 1, 2026
0a77532
Merge branch 'master' into claude/agent-team-jspecify-Frd74
dondonz Mar 1, 2026
04f3778
Update orchestrator
dondonz Mar 7, 2026
4b90480
Add JSpecify annotations to ScalarTypeDefinition
dondonz Mar 7, 2026
ad1b358
Add JSpecify annotations to ScalarTypeExtensionDefinition
dondonz Mar 7, 2026
3933c24
Add JSpecify annotations to GraphQLCompositeType
dondonz Mar 7, 2026
c80ff8b
Add JSpecify annotations to ExtensionsBuilder
dondonz Mar 7, 2026
82f8e84
Add JSpecify annotations to InvalidSyntaxException
dondonz Mar 7, 2026
ad1a071
Add JSpecify annotations to GraphQLInputType
dondonz Mar 7, 2026
64f1506
Add JSpecify annotations to GraphqlElementParentTree
dondonz Mar 7, 2026
b5ecfe0
Add JSpecify annotations to SchemaDefinition
dondonz Mar 7, 2026
212b539
Add JSpecify annotations to GraphQLInputSchemaElement
dondonz Mar 7, 2026
c7fb64d
Add JSpecify annotations to MultiSourceReader
dondonz Mar 7, 2026
c60c4ea
Add JSpecify annotations to DeferPayload
dondonz Mar 7, 2026
208e225
Add JSpecify annotations to SchemaExtensionDefinition
dondonz Mar 7, 2026
d2250d1
Add JSpecify annotations to GraphqlTypeComparatorEnvironment
dondonz Mar 7, 2026
707c279
Add JSpecify annotations to GraphQLOutputType, GraphQLNamedOutputType…
dondonz Mar 7, 2026
e09caed
Add JSpecify annotations to DelayedIncrementalPartialResult
dondonz Mar 7, 2026
71dd830
Add JSpecify annotations to Selection
dondonz Mar 7, 2026
6c10704
Add JSpecify annotations to GraphQLSchemaElement
dondonz Mar 7, 2026
e0bbe97
Add JSpecify annotations to GraphqlTypeComparatorRegistry
dondonz Mar 7, 2026
cead352
Add JSpecify annotations to Parser
dondonz Mar 7, 2026
a0ce820
Add JSpecify annotations to GraphQLNamedSchemaElement
dondonz Mar 7, 2026
6cffcd2
Add JSpecify annotations to SelectionSet
dondonz Mar 7, 2026
19c22c7
Add JSpecify annotations to DelayedIncrementalPartialResultImpl
dondonz Mar 7, 2026
aa38763
Add JSpecify annotations to InputValueWithState
dondonz Mar 7, 2026
6fd997e
Add JSpecify annotations to IncrementalExecutionResult
dondonz Mar 7, 2026
2ff5281
Add JSpecify annotations to SelectionSetContainer
dondonz Mar 7, 2026
38e497d
Add JSpecify annotations to GraphQLInputValueDefinition, GraphQLField…
dondonz Mar 7, 2026
f9b10d8
Add JSpecify annotations to ParserEnvironment
dondonz Mar 7, 2026
508dfc2
Add JSpecify annotations to TypeKind
dondonz Mar 7, 2026
24612dd
Add JSpecify annotations to SchemaElementChildrenContainer
dondonz Mar 7, 2026
dfffaf1
Add JSpecify annotations to ParserOptions
dondonz Mar 7, 2026
3f7c9de
Add JSpecify annotations to IncrementalExecutionResultImpl
dondonz Mar 7, 2026
f111944
Add JSpecify annotations to GraphQLDirectiveContainer
dondonz Mar 7, 2026
dd70a38
Add JSpecify annotations to NodeAdapter
dondonz Mar 7, 2026
52753ae
Add JSpecify annotations to TypeName
dondonz Mar 7, 2026
671cf18
Add JSpecify annotations to GraphQLTypeVisitor, GraphQLTypeVisitorStub
dondonz Mar 7, 2026
1cf7109
Add JSpecify annotations to NodeLocation
dondonz Mar 7, 2026
60c60db
Add JSpecify annotations to SchemaTransformer
dondonz Mar 7, 2026
316615f
Add JSpecify annotations to IncrementalPayload
dondonz Mar 7, 2026
d719bb8
Add JSpecify annotations to DataFetchingFieldSelectionSet
dondonz Mar 7, 2026
7e6590a
Add JSpecify annotations to SchemaTraverser
dondonz Mar 7, 2026
45f1da2
Add JSpecify annotations to AsyncDataFetcher
dondonz Mar 7, 2026
975955c
Add JSpecify annotations to UnionTypeDefinition
dondonz Mar 7, 2026
459f3e8
Add JSpecify annotations to NodeMultiZipper
dondonz Mar 7, 2026
d9a8bff
Add JSpecify annotations to StreamPayload
dondonz Mar 7, 2026
73baeb8
Add JSpecify annotations to SelectedField
dondonz Mar 7, 2026
2dd5e06
Add JSpecify annotations to NodeZipper
dondonz Mar 7, 2026
e4db17c
Add JSpecify annotations to UnionTypeExtensionDefinition
dondonz Mar 7, 2026
2a6a563
Add JSpecify annotations to CoercingParseLiteralException, CoercingPa…
dondonz Mar 7, 2026
8930ff1
Add JSpecify annotations to TraversalControl
dondonz Mar 7, 2026
474e25f
Add JSpecify annotations to GoodFaithIntrospection
dondonz Mar 7, 2026
94efd56
Add JSpecify annotations to StaticDataFetcher
dondonz Mar 7, 2026
1f8779d
Add JSpecify annotations to DataFetcherFactories, DataFetcherFactoryE…
dondonz Mar 7, 2026
b82476c
Add JSpecify annotations to Introspection
dondonz Mar 7, 2026
110889d
Add JSpecify annotations to DefaultGraphqlTypeComparatorRegistry
dondonz Mar 7, 2026
25105cc
Add JSpecify annotations to IntrospectionQuery
dondonz Mar 7, 2026
7bbb5b6
Add JSpecify annotations to VariableDefinition
dondonz Mar 7, 2026
2b491c1
Add JSpecify annotations to TraverserContext
dondonz Mar 7, 2026
9b1401f
Add JSpecify annotations to DelegatingDataFetchingEnvironment
dondonz Mar 7, 2026
0e63fbb
Add JSpecify annotations to FieldCoordinates
dondonz Mar 7, 2026
2b7c527
Add JSpecify annotations to TreeTransformer
dondonz Mar 7, 2026
85cf8ee
Add JSpecify annotations to IntrospectionQueryBuilder
dondonz Mar 7, 2026
2b761b2
Add JSpecify annotations to TreeTransformerUtil
dondonz Mar 7, 2026
a982677
Add JSpecify annotations to DiffCategory, DiffLevel, DiffEvent, DiffS…
dondonz Mar 7, 2026
45fe990
Add JSpecify annotations to GraphQLAppliedDirectiveArgument
dondonz Mar 7, 2026
20a9960
Add JSpecify annotations to IntrospectionResultToSchema
dondonz Mar 7, 2026
01ba639
Add JSpecify annotations to CapturingReporter, ChainedReporter, Print…
dondonz Mar 7, 2026
f2e9b05
Add JSpecify annotations to CombinedWiringFactory
dondonz Mar 7, 2026
2c18b0b
Add JSpecify annotations to GraphQLArgument
dondonz Mar 7, 2026
1115c56
Add JSpecify annotations to IntrospectionWithDirectivesSupport
dondonz Mar 7, 2026
cbc31f9
Add JSpecify annotations to ExecutableNormalizedField
dondonz Mar 7, 2026
7b2694a
Add JSpecify annotations to GraphQLDirective
dondonz Mar 7, 2026
66893ac
Add JSpecify annotations to MapEnumValuesProvider, NaturalEnumValuesP…
dondonz Mar 7, 2026
160fc66
Add JSpecify annotations to ExecutableNormalizedOperation
dondonz Mar 7, 2026
600dfb8
Add JSpecify annotations to GraphQLEnumValueDefinition
dondonz Mar 7, 2026
be4ee78
Add JSpecify annotations to RuntimeWiring
dondonz Mar 7, 2026
35fac95
Add JSpecify annotations to GraphQLFieldDefinition
dondonz Mar 7, 2026
109840b
Add JSpecify annotations to ExecutableNormalizedOperationFactory
dondonz Mar 7, 2026
d7f0ef3
Add JSpecify annotations to SchemaDirectiveWiring, SchemaDirectiveWir…
dondonz Mar 7, 2026
bedab9e
Add JSpecify annotations to GraphQLInputObjectField
dondonz Mar 7, 2026
5932e03
Add JSpecify annotations to SchemaGenerator
dondonz Mar 7, 2026
cd81592
Add JSpecify annotations to GraphQLInputObjectType
dondonz Mar 7, 2026
ef5d836
Add JSpecify annotations to SchemaPrinter
dondonz Mar 7, 2026
8df23fe
Add JSpecify annotations to GraphQLInterfaceType
dondonz Mar 7, 2026
71d6c06
Add JSpecify annotations to ExecutableNormalizedOperationToAstCompiler
dondonz Mar 7, 2026
953b4fa
Add JSpecify annotations to GraphQLNonNull
dondonz Mar 7, 2026
5ccfd7a
Add JSpecify annotations to TypeRuntimeWiring
dondonz Mar 7, 2026
45901a3
Add JSpecify annotations to GraphQLObjectType
dondonz Mar 7, 2026
2e97608
Add JSpecify annotations to NormalizedInputValue
dondonz Mar 7, 2026
2bc8a73
Add JSpecify annotations to SchemaProblem, StrictModeWiringException
dondonz Mar 7, 2026
e70da28
Add JSpecify annotations to GraphQLTypeReference
dondonz Mar 7, 2026
7479870
Add JSpecify annotations to FieldVisibilitySchemaTransformation, Visi…
dondonz Mar 7, 2026
2e82e29
Fix NullAway errors from JSpecify annotation changes
dondonz Mar 7, 2026
8a5bca0
Add JSpecify annotations to SchemaUsage, SchemaUsageSupport
dondonz Mar 7, 2026
bbe52cd
Add JSpecify annotations to SchemaValidationErrorClassification
dondonz Mar 7, 2026
b527cbe
Add JSpecify annotations to BlockedFields, DefaultGraphqlFieldVisibil…
dondonz Mar 7, 2026
cdef600
Fix NullAway errors in JSpecify-annotated introspection classes
dondonz Mar 7, 2026
c0464e7
Add JSpecify annotations to GraphQLSchemaTraversalControl
dondonz Mar 7, 2026
a661884
Fix NullAway errors from JSpecify annotations in schema classes
dondonz Mar 7, 2026
c1bc5e0
Fix NullAway errors from JSpecify annotations
dondonz Mar 7, 2026
a6441a4
Remove annotated classes from JSpecify exemption list
dondonz Mar 7, 2026
1278b17
Add @NullMarked to DirectivePredicateEnvironment inner interface
dondonz Mar 7, 2026
11e3a5a
Remove annotated classes from JSpecify exemption list
dondonz Mar 7, 2026
fd32748
Merge branch 'worktree-agent-a0f2cc92' into claude/jspecify-wave4
dondonz Mar 7, 2026
5295d89
Merge branch 'worktree-agent-a14b2de7' into claude/jspecify-wave4
dondonz Mar 7, 2026
9c394ec
Merge branch 'worktree-agent-aee70ecc' into claude/jspecify-wave4
dondonz Mar 7, 2026
ba51a80
Merge branch 'worktree-agent-a923806e' into claude/jspecify-wave4
dondonz Mar 7, 2026
a21e088
Merge branch 'worktree-agent-a7ac80e9' into claude/jspecify-wave4
dondonz Mar 7, 2026
d8f36d2
Fix NullAway errors from JSpecify Wave 1 annotations
dondonz Mar 7, 2026
23d9285
Remove annotated Wave 1 classes from JSpecify exemption list
dondonz Mar 7, 2026
6099dad
Update orchestrator prompt for wave 5: execution packages only
dondonz Mar 7, 2026
f9f4154
Add JSpecify annotations to NormalizedDeferredExecution
dondonz Mar 7, 2026
0b524b1
Add JSpecify annotations to QueryGeneratorResult
dondonz Mar 7, 2026
5d1ff5f
Add JSpecify annotations to NormalizedDocument
dondonz Mar 7, 2026
24a8f34
Add JSpecify annotations to QueryGeneratorOptions
dondonz Mar 7, 2026
bf92ff4
Add JSpecify annotations to QueryGenerator
dondonz Mar 7, 2026
45ca396
Add JSpecify annotations to OneOfInputObjectRules
dondonz Mar 7, 2026
77a6c74
Add JSpecify annotations to NormalizedDocumentFactory
dondonz Mar 7, 2026
347707e
Add JSpecify annotations to CyclicSchemaAnalyzer
dondonz Mar 7, 2026
cdef4e4
Add JSpecify annotations to SchemaGraph
dondonz Mar 7, 2026
d37b8fa
Add JSpecify annotations to NormalizedOperationToAstCompiler
dondonz Mar 7, 2026
212836c
Add JSpecify annotations to NormalizedField
dondonz Mar 7, 2026
52b3473
Add JSpecify annotations to NormalizedOperation
dondonz Mar 7, 2026
08f6c66
Merge branch 'master' into claude/jspecify-wave4
dondonz Mar 7, 2026
7f17571
Merge branch 'worktree-agent-ac94456e' into claude/jspecify-wave5
dondonz Mar 7, 2026
2ef1bf8
Merge branch 'worktree-agent-aa0c5bf9' into claude/jspecify-wave5
dondonz Mar 7, 2026
645f3ab
Fix NullAway errors from JSpecify Wave 5 annotations
dondonz Mar 7, 2026
dbb0f99
Remove annotated Wave 5 classes from JSpecify exemption list
dondonz Mar 7, 2026
54e6dfd
Fix missing NodeAdapter context var in TreeParallelTransformer
dondonz Mar 7, 2026
49aec56
Update orchestration prompt
dondonz Mar 7, 2026
0f5ad71
Merge branch 'claude/jspecify-wave4' into claude/jspecify-wave5
dondonz Mar 7, 2026
2d0083d
Merge branch 'master' into claude/jspecify-wave5
dondonz Mar 7, 2026
bd93278
Merge branch 'master' into claude/jspecify-wave4
dondonz Apr 4, 2026
fb0a249
Merge branch 'master' into claude/jspecify-wave4
dondonz Apr 27, 2026
5e1ae1e
Small fixes after latest master update
dondonz Apr 27, 2026
a3e3b07
Remove annotated classes from JSpecify exemption list
dondonz May 4, 2026
8399959
Add more small fixes
dondonz May 23, 2026
a631eba
Make this one nullable again
dondonz May 23, 2026
dc3c33e
Merge branch 'master' into claude/jspecify-wave4
dondonz May 23, 2026
7b7e39c
Merge branch 'master' into claude/jspecify-wave5
dondonz May 23, 2026
33c8f93
Merge branch 'claude/jspecify-wave4' into claude/jspecify-wave5
dondonz May 23, 2026
44dd809
Remove prompts
dondonz May 24, 2026
e2cc6dd
Fix wave 4 bug and final class - Query Traverser!
dondonz May 24, 2026
1acee8b
Merge branch 'master' into claude/jspecify-wave5
dondonz May 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/main/java/graphql/analysis/QueryTransformer.java
5 changes: 4 additions & 1 deletion src/main/java/graphql/analysis/QueryTraverser.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.NullUnmarked;
import org.jspecify.annotations.Nullable;

import static graphql.Assert.assertNotNull;
import static graphql.Assert.assertShouldNeverHappen;
Expand All @@ -42,6 +44,7 @@
* visitField calls.
*/
@PublicApi
@NullMarked
public class QueryTraverser {

private final Collection<? extends Node> roots;
Expand Down Expand Up @@ -186,7 +189,7 @@ private List<Node> childrenOf(Node<?> node) {
return singletonList(fragmentsByName.get(fragmentSpread.getName()));
}

private Object visitImpl(QueryVisitor visitFieldCallback, Boolean preOrder) {
private Object visitImpl(QueryVisitor visitFieldCallback, @Nullable Boolean preOrder) {
Map<Class<?>, Object> rootVars = new LinkedHashMap<>();
rootVars.put(QueryTraversalContext.class, new QueryTraversalContext(rootParentType, null, null, GraphQLContext.getDefault()));

Expand Down
7 changes: 4 additions & 3 deletions src/main/java/graphql/extensions/ExtensionsBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.google.common.collect.ImmutableMap;
import graphql.ExecutionResult;
import graphql.PublicApi;
import org.jspecify.annotations.NonNull;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;

import java.util.Collections;
Expand All @@ -26,6 +26,7 @@
* is placed in the {@link ExecutionResult}
*/
@PublicApi
@NullMarked
public class ExtensionsBuilder {

// thread safe since there can be many changes say in DFs across threads
Expand Down Expand Up @@ -69,7 +70,7 @@ public int getChangeCount() {
*
* @return this builder for fluent style reasons
*/
public ExtensionsBuilder addValues(@NonNull Map<Object, Object> newValues) {
public ExtensionsBuilder addValues(Map<Object, Object> newValues) {
assertNotNull(newValues);
if (!newValues.isEmpty()) {
changes.add(newValues);
Expand All @@ -85,7 +86,7 @@ public ExtensionsBuilder addValues(@NonNull Map<Object, Object> newValues) {
*
* @return this builder for fluent style reasons
*/
public ExtensionsBuilder addValue(@NonNull Object key, @Nullable Object value) {
public ExtensionsBuilder addValue(Object key, @Nullable Object value) {
assertNotNull(key);
return addValues(Collections.singletonMap(key, value));
}
Expand Down
10 changes: 7 additions & 3 deletions src/main/java/graphql/incremental/DeferPayload.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import graphql.ExecutionResult;
import graphql.ExperimentalApi;
import graphql.GraphQLError;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.NullUnmarked;
import org.jspecify.annotations.Nullable;

import java.util.LinkedHashMap;
Expand All @@ -14,10 +16,11 @@
* Represents a defer payload
*/
@ExperimentalApi
@NullMarked
public class DeferPayload extends IncrementalPayload {
private final Object data;
private final @Nullable Object data;

private DeferPayload(Object data, List<Object> path, String label, List<GraphQLError> errors, Map<Object, Object> extensions) {
private DeferPayload(@Nullable Object data, List<Object> path, @Nullable String label, @Nullable List<GraphQLError> errors, @Nullable Map<Object, Object> extensions) {
super(path, label, errors, extensions);
this.data = data;
}
Expand Down Expand Up @@ -48,7 +51,7 @@ public int hashCode() {
}

@Override
public boolean equals(Object obj) {
public boolean equals(@Nullable Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
if (!super.equals(obj)) return false;
Expand All @@ -63,6 +66,7 @@ public static DeferPayload.Builder newDeferredItem() {
return new DeferPayload.Builder();
}

@NullUnmarked
public static class Builder extends IncrementalPayload.Builder<Builder> {
private Object data = null;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package graphql.incremental;

import graphql.ExperimentalApi;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;

import java.util.List;
Expand All @@ -13,6 +14,7 @@
* {@link DelayedIncrementalPartialResult}
*/
@ExperimentalApi
@NullMarked
public interface DelayedIncrementalPartialResult {
/**
* @return a list of defer and/or stream payloads.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,21 @@

import graphql.ExperimentalApi;
import graphql.util.FpKit;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.NullUnmarked;
import org.jspecify.annotations.Nullable;

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

@ExperimentalApi
@NullMarked
public class DelayedIncrementalPartialResultImpl implements DelayedIncrementalPartialResult {
private final List<IncrementalPayload> incrementalItems;
private final @Nullable List<IncrementalPayload> incrementalItems;
private final boolean hasNext;
private final Map<Object, Object> extensions;
private final @Nullable Map<Object, Object> extensions;

private DelayedIncrementalPartialResultImpl(Builder builder) {
this.incrementalItems = builder.incrementalItems;
Expand All @@ -21,7 +25,7 @@ private DelayedIncrementalPartialResultImpl(Builder builder) {
}

@Override
public List<IncrementalPayload> getIncremental() {
public @Nullable List<IncrementalPayload> getIncremental() {
return this.incrementalItems;
}

Expand All @@ -31,7 +35,7 @@ public boolean hasNext() {
}

@Override
public Map<Object, Object> getExtensions() {
public @Nullable Map<Object, Object> getExtensions() {
return this.extensions;
}

Expand Down Expand Up @@ -62,6 +66,7 @@ public static Builder newIncrementalExecutionResult() {
return new Builder();
}

@NullUnmarked
public static class Builder {
private boolean hasNext = false;
private List<IncrementalPayload> incrementalItems = Collections.emptyList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import graphql.ExecutionResult;
import graphql.ExperimentalApi;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
import org.reactivestreams.Publisher;

Expand Down Expand Up @@ -83,6 +84,7 @@
* The execution behaviour should match what we get from running Apollo Server 4.9.5 with graphql-js v17.0.0-alpha.2
*/
@ExperimentalApi
@NullMarked
public interface IncrementalExecutionResult extends ExecutionResult {
/**
* Indicates whether there are pending incremental data.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import graphql.ExecutionResult;
import graphql.ExecutionResultImpl;
import graphql.ExperimentalApi;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.NullUnmarked;
import org.jspecify.annotations.Nullable;
import org.reactivestreams.Publisher;

Expand All @@ -13,9 +15,10 @@
import java.util.function.Consumer;

@ExperimentalApi
@NullMarked
public class IncrementalExecutionResultImpl extends ExecutionResultImpl implements IncrementalExecutionResult {
private final boolean hasNext;
private final List<IncrementalPayload> incremental;
private final @Nullable List<IncrementalPayload> incremental;
private final Publisher<DelayedIncrementalPartialResult> incrementalItemPublisher;

private IncrementalExecutionResultImpl(Builder builder) {
Expand Down Expand Up @@ -79,6 +82,7 @@ public Map<String, Object> toSpecification() {
return map;
}

@NullUnmarked
public static class Builder extends ExecutionResultImpl.Builder<Builder> {
private boolean hasNext = true;
public List<IncrementalPayload> incremental;
Expand Down
14 changes: 9 additions & 5 deletions src/main/java/graphql/incremental/IncrementalPayload.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import graphql.GraphQLError;
import graphql.execution.ResultPath;
import graphql.util.FpKit;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.NullUnmarked;
import org.jspecify.annotations.Nullable;

import java.util.ArrayList;
Expand All @@ -16,13 +18,14 @@
* Represents a payload that can be resolved after the initial response.
*/
@ExperimentalApi
@NullMarked
public abstract class IncrementalPayload {
private final List<Object> path;
private final String label;
private final List<GraphQLError> errors;
private final transient Map<Object, Object> extensions;
private final @Nullable String label;
private final @Nullable List<GraphQLError> errors;
private final transient @Nullable Map<Object, Object> extensions;

protected IncrementalPayload(List<Object> path, String label, List<GraphQLError> errors, Map<Object, Object> extensions) {
protected IncrementalPayload(List<Object> path, @Nullable String label, @Nullable List<GraphQLError> errors, @Nullable Map<Object, Object> extensions) {
this.path = path;
this.errors = errors;
this.label = label;
Expand Down Expand Up @@ -90,7 +93,7 @@ public int hashCode() {
return Objects.hash(path, label, errors, extensions);
}

public boolean equals(Object obj) {
public boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
Expand All @@ -104,6 +107,7 @@ public boolean equals(Object obj) {
Objects.equals(extensions, that.extensions);
}

@NullUnmarked
protected static abstract class Builder<T extends Builder<T>> {
protected List<Object> path;
protected String label;
Expand Down
10 changes: 7 additions & 3 deletions src/main/java/graphql/incremental/StreamPayload.java
Loading
Loading