question: creates a cache span from an underlying cache file . concode_field_sep File file concode_elem_sep long length concode_elem_sep String SUFFIX concode_elem_sep Pattern CACHE_FILE_PATTERN_V2 concode_elem_sep long position concode_elem_sep Pattern CACHE_FILE_PATTERN_V1 concode_elem_sep long lastAccessTimestamp concode_elem_sep String key concode_elem_sep boolean isCached concode_field_sep boolean isOpenEnded concode_elem_sep File getCacheFileName concode_elem_sep CacheSpan createOpenHole concode_elem_sep CacheSpan createLookup concode_elem_sep CacheSpan createClosedHole concode_elem_sep CacheSpan touch concode_elem_sep File upgradeIfNeeded concode_elem_sep int compareTo
target: CacheSpan function ( File arg0 ) { Matcher loc0 = CACHE_FILE_PATTERN_V2 . loc0 ( arg0 . getName ( ) ) ; if ( ! loc0 . matches ( ) ) { return null ; } String loc1 = Util . unescapeFileName ( loc0 . group ( 1 ) ) ; return loc1 == null ? null : createCacheEntry ( loc1 , Long . parseLong ( loc0 . group ( 2 ) ) , Long . parseLong ( loc0 . group ( 3 ) ) , arg0 ) ; }