question: private TrieNode lookupTrieNode ( TrieNode rootNode , String userContext , int index ) { if ( index >= userContext . length ( ) ) { rootNode = ( rootNode == mRoot ) ? null : rootNode ; return rootNode ; } int curContent = ( int ) userContext . charAt ( index ) ; if ( rootNode . hasChild ( curContent ) ) { return lookupTrieNode ( rootNode . getChild ( curContent ) , userContext , index + 1 ) ; } else if ( rootNode == mRoot ) { return lookupTrieNode ( rootNode , userContext , index + 1 ) ; } else { return lookupTrieNode ( rootNode . getVineNode ( ) , userContext , index ) ; } }
target:  Given the context, tries to find the context of greatest length within the trie. The maximum length will naturally be the max depth of the trie. Null is returned only if even a context of length 1 can't be found.