public IData getData ( final long pDataKey ) throws TTIOException { checkArgument ( pDataKey >= 0 ) ; checkState ( ! mClose , "Transaction already closed" ) ; // Calculate bucket and data part for given datakey. final long seqBucketKey = pDataKey >> IConstants . INDIRECT_BUCKET_COUNT [ 3 ] ; final int dataBucketOffset = dataBucketOffset ( pDataKey ) ; DataBucket bucket = mCache . getIfPresent ( seqBucketKey ) ; if ( bucket == null ) { final List < DataBucket > listRevs = getSnapshotBuckets ( seqBucketKey ) ; final DataBucket [ ] revs = listRevs . toArray ( new DataBucket [ listRevs . size ( ) ] ) ; checkState ( revs . length > 0 , "Number of Buckets to reconstruct must be larger than 0" ) ; // Build up the complete bucket. final IRevisioning revision = mSession . getConfig ( ) . mRevision ; bucket = revision . combineBuckets ( revs ) ; mCache . put ( seqBucketKey , bucket ) ; } final IData returnVal = bucket . getData ( dataBucketOffset ) ; // root-fsys is excluded from the checkagainst deletion based on the necesssity of the data-layer to // reference against this data while creation of the transaction if ( pDataKey == 0 ) { return returnVal ; } else { return checkItemIfDeleted ( returnVal ) ; } }
Getting the data related to the given data key .