public < T > Result < T > load ( final Key < T > key ) { if ( key == null ) throw new NullPointerException ( "You tried to load a null key!" ) ; final Result < T > result = round . get ( key ) ; // If we are running a transaction, enlist the result so that it gets processed on commit even // if the client never materializes the result. if ( ofy . getTransaction ( ) != null ) ( ( PrivateAsyncTransaction ) ofy . getTransaction ( ) ) . enlist ( result ) ; // Now check to see if we need to recurse and add our parent(s) to the round if ( key . getParent ( ) != null ) { final KeyMetadata < ? > meta = ofy . factory ( ) . keys ( ) . getMetadata ( key ) ; // Is it really possible for this to be null? if ( meta != null ) { if ( meta . shouldLoadParent ( loadArrangement ) ) { load ( key . getParent ( ) ) ; } } } return result ; }
Gets the result possibly from the session putting it in the session if necessary . Also will recursively prepare the session with