Package graphql
Class GraphQLContext
- java.lang.Object
-
- graphql.GraphQLContext
-
@PublicApi @ThreadSafe public class GraphQLContext extends java.lang.Object
This context object can be used to contain key values that can be useful as "context" when executingDataFetcher
sDataFetcher df = new DataFetcher() { public Object get(DataFetchingEnvironment env) { GraphQLContext ctx = env.getGraphqlContext() User currentUser = ctx.getOrDefault("userKey",new AnonymousUser()) ... } }
ExecutionInput.getGraphQLContext()
All keys and values in the context MUST be non null. The class is mutable via a thread safe implementation but it is recommended to try to use this class in an immutable way if you can.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GraphQLContext.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
compute(java.lang.Object key, java.util.function.BiFunction<java.lang.Object,? super T,? extends T> remappingFunction)
Attempts to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping).<T> T
computeIfAbsent(java.lang.Object key, java.util.function.Function<java.lang.Object,? extends T> mappingFunction)
If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null.<T> T
computeIfPresent(java.lang.Object key, java.util.function.BiFunction<java.lang.Object,? super T,? extends T> remappingFunction)
If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value.GraphQLContext
delete(java.lang.Object key)
Deletes a key in the contextboolean
equals(java.lang.Object o)
<T> T
get(java.lang.Object key)
Returns a value in the context by keystatic GraphQLContext
getDefault()
<T> T
getOrDefault(java.lang.Object key, T defaultValue)
Returns a value in the context by key<T> java.util.Optional<T>
getOrEmpty(java.lang.Object key)
Returns aOptional
value in the context by keyint
hashCode()
boolean
hasKey(java.lang.Object key)
Returns true if the context contains a value for that keystatic GraphQLContext.Builder
newContext()
Creates a new GraphqlContext builderstatic GraphQLContext
of(java.util.function.Consumer<GraphQLContext.Builder> contextBuilderConsumer)
Creates a new GraphqlContext with the map of context added to itstatic GraphQLContext
of(java.util.Map<?,java.lang.Object> mapOfContext)
Creates a new GraphqlContext with the map of context added to itGraphQLContext
put(java.lang.Object key, java.lang.Object value)
Puts a value into the contextGraphQLContext
putAll(GraphQLContext context)
Puts all of the values into the contextGraphQLContext
putAll(GraphQLContext.Builder contextBuilder)
Puts all of the values into the contextGraphQLContext
putAll(java.util.function.Consumer<GraphQLContext.Builder> contextBuilderConsumer)
Puts all of the values into the contextGraphQLContext
putAll(java.util.Map<?,java.lang.Object> map)
Puts all of the values into the contextjava.util.stream.Stream<java.util.Map.Entry<java.lang.Object,java.lang.Object>>
stream()
java.lang.String
toString()
-
-
-
Method Detail
-
delete
public GraphQLContext delete(java.lang.Object key)
Deletes a key in the context- Parameters:
key
- the key to delete- Returns:
- this GraphQLContext object
-
get
public <T> T get(java.lang.Object key)
Returns a value in the context by key- Type Parameters:
T
- for two- Parameters:
key
- the key to look up- Returns:
- a value or null
-
getOrDefault
public <T> T getOrDefault(java.lang.Object key, T defaultValue)
Returns a value in the context by key- Type Parameters:
T
- for two- Parameters:
key
- the key to look updefaultValue
- the default value to use if these is no key entry- Returns:
- a value or default value
-
getOrEmpty
public <T> java.util.Optional<T> getOrEmpty(java.lang.Object key)
Returns aOptional
value in the context by key- Type Parameters:
T
- for two- Parameters:
key
- the key to look up- Returns:
- a value or an empty optional value
-
hasKey
public boolean hasKey(java.lang.Object key)
Returns true if the context contains a value for that key- Parameters:
key
- the key to lookup- Returns:
- true if there is a value for that key
-
put
public GraphQLContext put(java.lang.Object key, java.lang.Object value)
Puts a value into the context- Parameters:
key
- the key to setvalue
- the new value (which not must be null)- Returns:
- this
GraphQLContext
object
-
putAll
public GraphQLContext putAll(java.util.Map<?,java.lang.Object> map)
Puts all of the values into the context- Parameters:
map
- the map of values to use- Returns:
- this
GraphQLContext
object
-
putAll
public GraphQLContext putAll(GraphQLContext context)
Puts all of the values into the context- Parameters:
context
- the other context to use- Returns:
- this
GraphQLContext
object
-
putAll
public GraphQLContext putAll(GraphQLContext.Builder contextBuilder)
Puts all of the values into the context- Parameters:
contextBuilder
- the other context to use- Returns:
- this
GraphQLContext
object
-
putAll
public GraphQLContext putAll(java.util.function.Consumer<GraphQLContext.Builder> contextBuilderConsumer)
Puts all of the values into the context- Parameters:
contextBuilderConsumer
- a call back to that gives out a builder to use- Returns:
- this
GraphQLContext
object
-
compute
public <T> T compute(java.lang.Object key, java.util.function.BiFunction<java.lang.Object,? super T,? extends T> remappingFunction)
Attempts to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping).- Type Parameters:
T
- for two- Parameters:
key
- key with which the specified value is to be associatedremappingFunction
- the function to compute a value- Returns:
- the new value associated with the specified key, or null if none
-
computeIfAbsent
public <T> T computeIfAbsent(java.lang.Object key, java.util.function.Function<java.lang.Object,? extends T> mappingFunction)
If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null.- Type Parameters:
T
- for two- Parameters:
key
- key with which the specified value is to be associatedmappingFunction
- the function to compute a value- Returns:
- the current (existing or computed) value associated with the specified key, or null if the computed value is null
-
computeIfPresent
public <T> T computeIfPresent(java.lang.Object key, java.util.function.BiFunction<java.lang.Object,? super T,? extends T> remappingFunction)
If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value.- Type Parameters:
T
- for two- Parameters:
key
- key with which the specified value is to be associatedremappingFunction
- the function to compute a value- Returns:
- the new value associated with the specified key, or null if none
-
stream
public java.util.stream.Stream<java.util.Map.Entry<java.lang.Object,java.lang.Object>> stream()
- Returns:
- a stream of entries in the context
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
of
public static GraphQLContext of(java.util.Map<?,java.lang.Object> mapOfContext)
Creates a new GraphqlContext with the map of context added to it- Parameters:
mapOfContext
- the map of context value to use- Returns:
- the new GraphqlContext
-
of
public static GraphQLContext of(java.util.function.Consumer<GraphQLContext.Builder> contextBuilderConsumer)
Creates a new GraphqlContext with the map of context added to it- Parameters:
contextBuilderConsumer
- a callback that is given a new builder- Returns:
- the new GraphqlContext
-
getDefault
public static GraphQLContext getDefault()
- Returns:
- a new and empty graphql context object
-
newContext
public static GraphQLContext.Builder newContext()
Creates a new GraphqlContext builder- Returns:
- the new builder
-
-