public Result < Map < Key < ? > , Object > > translate ( final Result < Map < com . google . cloud . datastore . Key , Entity > > raw ) { return new ResultCache < Map < Key < ? > , Object > > ( ) { /** */ private LoadContext ctx ; /** */ @ Override public Map < Key < ? > , Object > nowUncached ( ) { final Map < Key < ? > , Object > result = new HashMap <> ( raw . now ( ) . size ( ) * 2 ) ; ctx = new LoadContext ( LoadEngine . this ) ; for ( final Entity ent : raw . now ( ) . values ( ) ) { final Key < ? > key = Key . create ( ent . getKey ( ) ) ; final Object entity = load ( ent , ctx ) ; result . put ( key , entity ) ; } return result ; } /** * We need to execute the done() after the translated value has been set, otherwise we * can produce an infinite recursion problem. */ @ Override protected void postExecuteHook ( ) { ctx . done ( ) ; ctx = null ; } } ; }
Asynchronously translate raw to processed ; might produce successive load operations as refs are filled in