Class InMemoryPersistedQueryCache

    • Constructor Detail

      • InMemoryPersistedQueryCache

        public InMemoryPersistedQueryCache​(java.util.Map<java.lang.Object,​java.lang.String> knownQueries)
    • Method Detail

      • getKnownQueries

        public java.util.Map<java.lang.Object,​java.lang.String> getKnownQueries()
      • getPersistedQueryDocument

        public PreparsedDocumentEntry getPersistedQueryDocument​(java.lang.Object persistedQueryId,
                                                                ExecutionInput executionInput,
                                                                PersistedQueryCacheMiss onCacheMiss)
                                                         throws PersistedQueryNotFound
        Description copied from interface: PersistedQueryCache
        This is called to get a persisted query from cache.

        If its present in cache then it must return a PreparsedDocumentEntry where PreparsedDocumentEntry.getDocument() is already parsed and validated. This will be passed onto the graphql engine as is.

        If it's a valid query id but its no present in cache, (cache miss) then you need to call back the "onCacheMiss" function with associated query text. This will be compiled and validated by the graphql engine and the PreparsedDocumentEntry will be passed back ready for you to cache it.

        If it's not a valid query id then throw a PersistedQueryNotFound to indicate this.

        Specified by:
        getPersistedQueryDocument in interface PersistedQueryCache
        Parameters:
        persistedQueryId - the persisted query id
        executionInput - the original execution input
        onCacheMiss - the call back should it be a valid query id but it's not currently in the cache
        Returns:
        a parsed and validated PreparsedDocumentEntry where PreparsedDocumentEntry.getDocument() is set
        Throws:
        PersistedQueryNotFound - if the query id is not know at all and you have no query text