| // Copyright 2016 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package io.v.syncbase; |
| |
| import com.google.common.collect.Lists; |
| |
| import java.util.List; |
| |
| /** |
| * Describes a change to a database. |
| */ |
| public class WatchChange { |
| public enum ChangeType { |
| PUT, |
| DELETE; |
| } |
| |
| private final ChangeType mChangeType; |
| private final Id mCollectionId; |
| private final String mRowKey; |
| private final Object mValue; |
| private final byte[] mResumeMarker; |
| private final boolean mFromSync; |
| private final boolean mContinued; |
| |
| public ChangeType getChangeType() { |
| return mChangeType; |
| } |
| |
| public Id getCollectionId() { |
| return mCollectionId; |
| } |
| |
| public String getRowKey() { |
| return mRowKey; |
| } |
| |
| public Object getValue() { |
| return mValue; |
| } |
| |
| public byte[] getResumeMarker() { |
| return mResumeMarker; |
| } |
| |
| public boolean isFromSync() { |
| return mFromSync; |
| } |
| |
| public boolean isContinued() { |
| return mContinued; |
| } |
| |
| // TODO(sadovsky): Eliminate the code below once we've switched to io.v.syncbase.core. |
| |
| protected WatchChange(io.v.v23.syncbase.WatchChange c) { |
| mChangeType = c.getChangeType() == io.v.v23.syncbase.ChangeType.PUT_CHANGE ? ChangeType.PUT : ChangeType.DELETE; |
| mCollectionId = new Id(c.getCollectionId()); |
| mRowKey = c.getRowName(); |
| mValue = c.getValue(); |
| List<Byte> bytes = Lists.newArrayList(c.getResumeMarker().iterator()); |
| mResumeMarker = new byte[bytes.size()]; |
| for (int i = 0; i < mResumeMarker.length; i++) mResumeMarker[i] = (byte) bytes.get(i); |
| mFromSync = c.isFromSync(); |
| mContinued = c.isContinued(); |
| } |
| } |