This is an automated email from the ASF dual-hosted git repository. cshannon pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/elasticity by this push: new 9f13d8401a Mark member variables as final in tserver module (#4832) 9f13d8401a is described below commit 9f13d8401a239127d1771cadbceb91b508014e75 Author: Christopher L. Shannon <cshan...@apache.org> AuthorDate: Sat Aug 24 15:08:10 2024 -0400 Mark member variables as final in tserver module (#4832) See #4830 --- .../apache/accumulo/tserver/BlockCacheMetrics.java | 6 ++-- .../org/apache/accumulo/tserver/InMemoryMap.java | 38 +++++++++++----------- .../java/org/apache/accumulo/tserver/MemValue.java | 4 +-- .../org/apache/accumulo/tserver/NativeMap.java | 6 ++-- .../tserver/PartialMutationSkippingIterator.java | 2 +- .../java/org/apache/accumulo/tserver/RowLocks.java | 4 +-- .../org/apache/accumulo/tserver/ScanServer.java | 2 +- .../apache/accumulo/tserver/TabletMutations.java | 2 +- .../org/apache/accumulo/tserver/TabletServer.java | 4 +-- .../tserver/TabletServerResourceManager.java | 4 +-- .../apache/accumulo/tserver/TabletStatsKeeper.java | 2 +- .../tserver/constraints/ConstraintChecker.java | 2 +- .../constraints/UnsatisfiableConstraint.java | 4 +-- .../accumulo/tserver/log/SortedLogRecovery.java | 2 +- .../managermessage/TabletStatusMessage.java | 4 +-- .../org/apache/accumulo/tserver/scan/ScanTask.java | 4 +-- .../accumulo/tserver/session/SummarySession.java | 2 +- .../tserver/tablet/MinorCompactionTask.java | 8 ++--- .../accumulo/tserver/tablet/ScanDataSource.java | 4 +-- .../org/apache/accumulo/tserver/tablet/Tablet.java | 2 +- .../apache/accumulo/tserver/tablet/TabletBase.java | 6 ++-- .../accumulo/tserver/tablet/TabletMemory.java | 2 +- 22 files changed, 57 insertions(+), 57 deletions(-) diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java index 6444e74ac2..eb70d8ee54 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java @@ -28,9 +28,9 @@ import io.micrometer.core.instrument.MeterRegistry; public class BlockCacheMetrics implements MetricsProducer { - BlockCache indexCache; - BlockCache dataCache; - BlockCache summaryCache; + final BlockCache indexCache; + final BlockCache dataCache; + final BlockCache summaryCache; public BlockCacheMetrics(BlockCache indexCache, BlockCache dataCache, BlockCache summaryCache) { this.indexCache = indexCache; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java index 2479c4a791..d943e3f6f8 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/InMemoryMap.java @@ -90,7 +90,7 @@ public class InMemoryMap { private final String mapType; private final TableId tableId; - private Map<String,Set<ByteSequence>> lggroups; + private final Map<String,Set<ByteSequence>> lggroups; private static Pair<SamplerConfigurationImpl,Sampler> getSampler(AccumuloConfiguration config) { try { @@ -110,10 +110,10 @@ public class InMemoryMap { public static final String TYPE_LOCALITY_GROUP_MAP = "LocalityGroupMap"; public static final String TYPE_LOCALITY_GROUP_MAP_NATIVE = "LocalityGroupMap with native"; - private AtomicReference<Pair<SamplerConfigurationImpl,Sampler>> samplerRef = + private final AtomicReference<Pair<SamplerConfigurationImpl,Sampler>> samplerRef = new AtomicReference<>(null); - private AccumuloConfiguration config; + private final AccumuloConfiguration config; // defer creating sampler until first write. This was done because an empty sample map configured // with no sampler will not flush after a user changes sample @@ -198,8 +198,8 @@ public class InMemoryMap { private class SampleMap implements SimpleMap { - private SimpleMap map; - private SimpleMap sample; + private final SimpleMap map; + private final SimpleMap sample; public SampleMap(SimpleMap map, SimpleMap sampleMap) { this.map = map; @@ -280,12 +280,12 @@ public class InMemoryMap { private static class LocalityGroupMap implements SimpleMap { - private PreAllocatedArray<Map<ByteSequence,MutableLong>> groupFams; + private final PreAllocatedArray<Map<ByteSequence,MutableLong>> groupFams; // the last map in the array is the default locality group - private SimpleMap[] maps; - private Partitioner partitioner; - private PreAllocatedArray<List<Mutation>> partitioned; + private final SimpleMap[] maps; + private final Partitioner partitioner; + private final PreAllocatedArray<List<Mutation>> partitioned; LocalityGroupMap(Map<String,Set<ByteSequence>> groups, boolean useNativeMap) { this.groupFams = new PreAllocatedArray<>(groups.size()); @@ -385,8 +385,8 @@ public class InMemoryMap { private static class DefaultMap implements SimpleMap { private ConcurrentSkipListMap<Key,Value> map = new ConcurrentSkipListMap<>(new MemKeyComparator()); - private AtomicLong bytesInMemory = new AtomicLong(); - private AtomicInteger size = new AtomicInteger(); + private final AtomicLong bytesInMemory = new AtomicLong(); + private final AtomicInteger size = new AtomicInteger(); public void put(Key key, Value value) { // Always a MemKey, so account for the kvCount int @@ -448,7 +448,7 @@ public class InMemoryMap { } private static class NativeMapWrapper implements SimpleMap { - private NativeMap nativeMap; + private final NativeMap nativeMap; NativeMapWrapper() { nativeMap = new NativeMap(); @@ -483,10 +483,10 @@ public class InMemoryMap { } } - private AtomicInteger nextKVCount = new AtomicInteger(1); - private AtomicInteger kvCount = new AtomicInteger(0); + private final AtomicInteger nextKVCount = new AtomicInteger(1); + private final AtomicInteger kvCount = new AtomicInteger(0); - private Object writeSerializer = new Object(); + private final Object writeSerializer = new Object(); /** * Applies changes to a row in the InMemoryMap @@ -537,10 +537,10 @@ public class InMemoryMap { private boolean switched = false; private InterruptibleIterator iter; private FileSKVIterator reader; - private MemoryDataSource parent; - private IteratorEnvironment env; + private final MemoryDataSource parent; + private final IteratorEnvironment env; private AtomicBoolean iflag; - private SamplerConfigurationImpl iteratorSamplerConfig; + private final SamplerConfigurationImpl iteratorSamplerConfig; private SamplerConfigurationImpl getSamplerConfig() { if (env != null) { @@ -659,7 +659,7 @@ public class InMemoryMap { public class MemoryIterator extends WrappingIterator implements InterruptibleIterator { - private AtomicBoolean closed; + private final AtomicBoolean closed; private SourceSwitchingIterator ssi; private MemoryDataSource mds; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/MemValue.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/MemValue.java index eb6aa22ddb..2c63f79780 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/MemValue.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/MemValue.java @@ -22,8 +22,8 @@ import org.apache.accumulo.core.data.Value; public class MemValue { - Value value; - int kvCount; + final Value value; + final int kvCount; public MemValue(Value value, int kv) { this.value = value; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java index a21b8d3217..04c16f7ccd 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java @@ -284,8 +284,8 @@ public class NativeMap implements Iterable<Map.Entry<Key,Value>> { private final AtomicLong nmiPtr = new AtomicLong(0); private boolean hasNext; - private int expectedModCount; - private int[] fieldsLens = new int[7]; + private final int expectedModCount; + private final int[] fieldsLens = new int[7]; private byte[] lastRow; private final Cleanable cleanableNMI; @@ -537,7 +537,7 @@ public class NativeMap implements Iterable<Map.Entry<Key,Value>> { private ConcurrentIterator iter; private Entry<Key,Value> entry; - private NativeMap map; + private final NativeMap map; private Range range; private AtomicBoolean interruptFlag; private int interruptCheckCount = 0; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java index b996165d1d..c9154c69e3 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/PartialMutationSkippingIterator.java @@ -30,7 +30,7 @@ import org.apache.accumulo.core.iteratorsImpl.system.InterruptibleIterator; class PartialMutationSkippingIterator extends SkippingIterator implements InterruptibleIterator { - private int kvCount; + private final int kvCount; public PartialMutationSkippingIterator(SortedKeyValueIterator<Key,Value> source, int maxKVCount) { setSource(source); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/RowLocks.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/RowLocks.java index 775bda26cc..baa20300af 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/RowLocks.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/RowLocks.java @@ -43,9 +43,9 @@ class RowLocks { private final Map<ByteSequence,RowLock> rowLocks = new ConcurrentHashMap<>(); static class RowLock { - ReentrantLock rlock; + final ReentrantLock rlock; int count; - ByteSequence rowSeq; + final ByteSequence rowSeq; RowLock(ReentrantLock rlock, ByteSequence rowSeq) { this.rlock = rlock; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java index db71c53642..f22e8d60a2 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java @@ -205,7 +205,7 @@ public class ScanServer extends AbstractServer private ScanServerMetrics scanServerMetrics; private BlockCacheMetrics blockCacheMetrics; - private ZooCache managerLockCache; + private final ZooCache managerLockCache; public ScanServer(ConfigOpts opts, String[] args) { super("sserver", opts, ServerContext::new, args); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletMutations.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletMutations.java index 091ae36500..bd8cfeb0fd 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletMutations.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletMutations.java @@ -25,7 +25,7 @@ import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.tserver.tablet.CommitSession; public class TabletMutations { - private CommitSession commitSession; + private final CommitSession commitSession; private final List<Mutation> mutations; private final Durability durability; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java index 8d8b7b4ac7..89e166c97d 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java @@ -253,9 +253,9 @@ public class TabletServer extends AbstractServer implements TabletHostingServer if (numBusyTabletsToLog > 0) { ScheduledFuture<?> future = context.getScheduledExecutor() .scheduleWithFixedDelay(Threads.createNamedRunnable("BusyTabletLogger", new Runnable() { - private BusiestTracker ingestTracker = + private final BusiestTracker ingestTracker = BusiestTracker.newBusiestIngestTracker(numBusyTabletsToLog); - private BusiestTracker queryTracker = + private final BusiestTracker queryTracker = BusiestTracker.newBusiestQueryTracker(numBusyTabletsToLog); @Override diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java index 8c16e5f7ae..2644484a63 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java @@ -456,7 +456,7 @@ public class TabletServerResourceManager { private final Map<KeyExtent,TabletMemoryReport> tabletReports; private final LinkedBlockingQueue<TabletMemoryReport> memUsageReports; private long lastMemCheckTime = System.currentTimeMillis(); - private long maxMem; + private final long maxMem; private long lastMemTotal = 0; private final Thread memoryGuardThread; private final Thread minorCompactionInitiatorThread; @@ -641,7 +641,7 @@ public class TabletServerResourceManager { public class TabletResourceManager { - private volatile boolean openFilesReserved = false; + private final boolean openFilesReserved = false; private volatile boolean closed = false; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletStatsKeeper.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletStatsKeeper.java index 9ff77916c0..6e9a6a34fd 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletStatsKeeper.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletStatsKeeper.java @@ -32,7 +32,7 @@ public class TabletStatsKeeper { MINOR } - private ActionStats[] map = {minor}; + private final ActionStats[] map = {minor}; public void updateTime(Operation operation, long queued, long start, long count, boolean failed) { try { diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/ConstraintChecker.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/ConstraintChecker.java index edb9107df5..d3a041efe2 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/ConstraintChecker.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/ConstraintChecker.java @@ -41,7 +41,7 @@ import com.google.common.annotations.VisibleForTesting; public class ConstraintChecker { - private ArrayList<Constraint> constraints; + private final ArrayList<Constraint> constraints; private static final Logger log = LoggerFactory.getLogger(ConstraintChecker.class); public ConstraintChecker(AccumuloConfiguration conf) { diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/UnsatisfiableConstraint.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/UnsatisfiableConstraint.java index e97af26748..c5cf111b9f 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/UnsatisfiableConstraint.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/constraints/UnsatisfiableConstraint.java @@ -26,8 +26,8 @@ import org.apache.accumulo.core.data.constraints.Constraint; public class UnsatisfiableConstraint implements Constraint { - private List<Short> violations; - private String vDesc; + private final List<Short> violations; + private final String vDesc; public UnsatisfiableConstraint(short vcode, String violationDescription) { this.violations = Collections.unmodifiableList(Collections.singletonList(vcode)); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/SortedLogRecovery.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/SortedLogRecovery.java index 4b9358ad1e..dd69e7e184 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/SortedLogRecovery.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/SortedLogRecovery.java @@ -171,7 +171,7 @@ public class SortedLogRecovery { static class DeduplicatingIterator implements Iterator<Entry<LogFileKey,LogFileValue>> { - private PeekingIterator<Entry<LogFileKey,LogFileValue>> source; + private final PeekingIterator<Entry<LogFileKey,LogFileValue>> source; public DeduplicatingIterator(Iterator<Entry<LogFileKey,LogFileValue>> source) { this.source = Iterators.peekingIterator(source); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/managermessage/TabletStatusMessage.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/managermessage/TabletStatusMessage.java index 790ba32703..1827bea400 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/managermessage/TabletStatusMessage.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/managermessage/TabletStatusMessage.java @@ -28,8 +28,8 @@ import org.apache.thrift.TException; public class TabletStatusMessage implements ManagerMessage { - private KeyExtent extent; - private TabletLoadState status; + private final KeyExtent extent; + private final TabletLoadState status; public TabletStatusMessage(TabletLoadState status, KeyExtent extent) { this.extent = extent; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/scan/ScanTask.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/scan/ScanTask.java index 6adbda60fd..210adfc082 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/scan/ScanTask.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/scan/ScanTask.java @@ -34,8 +34,8 @@ public abstract class ScanTask<T> implements Runnable { protected final TabletHostingServer server; protected AtomicBoolean interruptFlag; protected ArrayBlockingQueue<Object> resultQueue; - protected AtomicInteger state; - protected AtomicReference<ScanRunState> runState; + protected final AtomicInteger state; + protected final AtomicReference<ScanRunState> runState; private static final int INITIAL = 1; private static final int ADDED = 2; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/session/SummarySession.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/session/SummarySession.java index 15699e8d6c..4804fc4f5d 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/session/SummarySession.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/session/SummarySession.java @@ -25,7 +25,7 @@ import org.apache.accumulo.core.summary.SummaryCollection; public class SummarySession extends Session { - private Future<SummaryCollection> future; + private final Future<SummaryCollection> future; public SummarySession(TCredentials credentials, Future<SummaryCollection> future) { super(credentials); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java index 225e0b468e..3b3a838f56 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java @@ -35,11 +35,11 @@ class MinorCompactionTask implements Runnable { private static final Logger log = LoggerFactory.getLogger(MinorCompactionTask.class); private final Tablet tablet; - private long queued; - private CommitSession commitSession; + private final long queued; + private final CommitSession commitSession; private DataFileValue stats; - private long flushId; - private MinorCompactionReason mincReason; + private final long flushId; + private final MinorCompactionReason mincReason; MinorCompactionTask(Tablet tablet, CommitSession commitSession, long flushId, MinorCompactionReason mincReason) { diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java index 730b55e644..4e8da9eeeb 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java @@ -62,12 +62,12 @@ class ScanDataSource implements DataSource { // data source state private final TabletBase tablet; private ScanFileManager fileManager; - private static AtomicLong nextSourceId = new AtomicLong(0); + private static final AtomicLong nextSourceId = new AtomicLong(0); private SortedKeyValueIterator<Key,Value> iter; private long expectedDeletionCount; private List<MemoryIterator> memIters = null; private long fileReservationId; - private AtomicBoolean interruptFlag; + private final AtomicBoolean interruptFlag; private StatsIterator statsIterator; private final ScanParameters scanParams; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java index 62e4e17b77..6efbeb2b2b 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java @@ -215,7 +215,7 @@ public class Tablet extends TabletBase { } public static class LookupResult { - public List<Range> unfinishedRanges = new ArrayList<>(); + public final List<Range> unfinishedRanges = new ArrayList<>(); public long bytesAdded = 0; public long dataSize = 0; public boolean closed = false; diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletBase.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletBase.java index 4e64e98201..3203134499 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletBase.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletBase.java @@ -76,9 +76,9 @@ public abstract class TabletBase { protected final ServerContext context; private final TabletHostingServer server; - protected AtomicLong lookupCount = new AtomicLong(0); - protected AtomicLong queryResultCount = new AtomicLong(0); - protected AtomicLong queryResultBytes = new AtomicLong(0); + protected final AtomicLong lookupCount = new AtomicLong(0); + protected final AtomicLong queryResultCount = new AtomicLong(0); + protected final AtomicLong queryResultBytes = new AtomicLong(0); protected final AtomicLong scannedCount = new AtomicLong(0); protected final Set<ScanDataSource> activeScans = new HashSet<>(); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletMemory.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletMemory.java index 42859ada8b..f5b81ff8a7 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletMemory.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/TabletMemory.java @@ -39,7 +39,7 @@ class TabletMemory implements Closeable { private InMemoryMap deletingMemTable; private long nextSeq = 1L; private CommitSession commitSession; - private ServerContext context; + private final ServerContext context; TabletMemory(Tablet tablet) { this.tablet = tablet;