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.
  • Field Details

  • Constructor Details

  • 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
    • 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
    • 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