@ Nullable private TtlBucket getBucketContaining ( InodeView inode ) { if ( inode . getTtl ( ) == Constants . NO_TTL ) { // no bucket will contain a inode with NO_TTL. return null ; } long ttlEndTimeMs = inode . getCreationTimeMs ( ) + inode . getTtl ( ) ; // Gets the last bucket with interval start time less than or equal to the inode's life end // time. TtlBucket bucket = mBucketList . floor ( new TtlBucket ( ttlEndTimeMs ) ) ; if ( bucket == null || bucket . getTtlIntervalEndTimeMs ( ) < ttlEndTimeMs || ( bucket . getTtlIntervalEndTimeMs ( ) == ttlEndTimeMs && TtlBucket . getTtlIntervalMs ( ) != 0 ) ) { // 1. There is no bucket in the list, or // 2. All buckets' interval start time is larger than the inode's life end time, or // 3. No bucket actually contains ttlEndTimeMs in its interval. return null ; } return bucket ; }
Gets the bucket in the list that contains the inode .