/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.ignite.internal.pagemem.wal.record; import org.apache.ignite.internal.processors.cache.CacheObject; import org.apache.ignite.internal.processors.cache.GridCacheOperation; import org.apache.ignite.internal.processors.cache.KeyCacheObject; import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; /** * */ public class DataEntry { /** */ protected int cacheId; /** */ protected KeyCacheObject key; /** */ protected CacheObject val; /** */ @GridToStringInclude protected GridCacheOperation op; /** */ protected GridCacheVersion nearXidVer; /** */ @GridToStringInclude protected GridCacheVersion writeVer; /** */ protected long expireTime; /** */ @GridToStringInclude protected int partId; /** */ @GridToStringInclude protected long partCnt; private DataEntry() { // No-op, used from factory methods. } /** * @param cacheId Cache ID. * @param key Key. * @param val Value. * @param op Operation. * @param nearXidVer Near transaction version. * @param writeVer Write version. * @param expireTime Expire time. * @param partId Partition ID. * @param partCnt Partition counter. */ public DataEntry( int cacheId, KeyCacheObject key, CacheObject val, GridCacheOperation op, GridCacheVersion nearXidVer, GridCacheVersion writeVer, long expireTime, int partId, long partCnt ) { this.cacheId = cacheId; this.key = key; this.val = val; this.op = op; this.nearXidVer = nearXidVer; this.writeVer = writeVer; this.expireTime = expireTime; this.partId = partId; this.partCnt = partCnt; // Only CREATE, UPDATE and DELETE operations should be stored in WAL. assert op == GridCacheOperation.CREATE || op == GridCacheOperation.UPDATE || op == GridCacheOperation.DELETE : op; } /** * @return Cache ID. */ public int cacheId() { return cacheId; } /** * @return Key cache object. */ public KeyCacheObject key() { return key; } /** * @return Value cache object. */ public CacheObject value() { return val; } /** * @return Cache operation. */ public GridCacheOperation op() { return op; } /** * @return Near transaction version if the write was transactional. */ public GridCacheVersion nearXidVersion() { return nearXidVer; } /** * @return Write version. */ public GridCacheVersion writeVersion() { return writeVer; } /** * @return Partition ID. */ public int partitionId() { return partId; } /** * @return Partition counter. */ public long partitionCounter() { return partCnt; } /** * @return Expire time. */ public long expireTime() { return expireTime; } /** {@inheritDoc} */ @Override public String toString() { return S.toString(DataEntry.class, this); } }