Package graphql

Class GraphQLContext

java.lang.Object
graphql.GraphQLContext

@PublicApi @ThreadSafe public class GraphQLContext extends Object
This context object can be used to contain key values that can be useful as "context" when executing DataFetchers
 
     DataFetcher df = new DataFetcher() {
        public Object get(DataFetchingEnvironment env) {
            GraphQLContext ctx = env.getGraphqlContext()
            User currentUser = ctx.getOrDefault("userKey",new AnonymousUser())
            ...
        }
     }
 
 
You can set this up via 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.
  • Method Details

    • delete

      public GraphQLContext delete(Object key)
      Deletes a key in the context
      Parameters:
      key - the key to delete
      Returns:
      this GraphQLContext object
    • get

      public <T> T get(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(Object key, T defaultValue)
      Returns a value in the context by key
      Type Parameters:
      T - for two
      Parameters:
      key - the key to look up
      defaultValue - the default value to use if these is no key entry
      Returns:
      a value or default value
    • getOrEmpty

      public <T> Optional<T> getOrEmpty(Object key)
      Returns a Optional 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
    • getBoolean

      public boolean getBoolean(Object key)
      This returns true if the value at the specified key is equal to Boolean.TRUE
      Parameters:
      key - the key to look up
      Returns:
      true if the value is equal to Boolean.TRUE
    • getBoolean

      public boolean getBoolean(Object key, Boolean defaultValue)
      This returns true if the value at the specified key is equal to Boolean.TRUE or the default value if the key is missing
      Parameters:
      key - the key to look up
      defaultValue - the value to use if the key is not present
      Returns:
      true if the value is equal to Boolean.TRUE
    • hasKey

      public boolean hasKey(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(Object key, Object value)
      Puts a value into the context
      Parameters:
      key - the key to set
      value - the new value (which not must be null)
      Returns:
      this GraphQLContext object
    • putAll

      public GraphQLContext putAll(Map<?,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(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(Object key, BiFunction<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 associated
      remappingFunction - the function to compute a value
      Returns:
      the new value associated with the specified key, or null if none
    • computeIfAbsent

      public <T> T computeIfAbsent(Object key, Function<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 associated
      mappingFunction - 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(Object key, BiFunction<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 associated
      remappingFunction - the function to compute a value
      Returns:
      the new value associated with the specified key, or null if none
    • stream

      public Stream<Map.Entry<Object,Object>> stream()
      Returns:
      a stream of entries in the context
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • of

      public static GraphQLContext of(Map<?,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(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