package com.jivesoftware.os.amza.api.stream; /** * @author jonathan.colt */ public enum RowType { // when advancing a version, preserve old versions as legacy end_of_merge((byte) -2, false, false), system((byte) -1, true, false), highwater((byte) 0, false, false), primary((byte) 1, false, true), snappy_primary((byte) 2, false, true); public static final long COMPACTION_HINTS_KEY = 0; public static final long COMMIT_KEY = 1; public static final long LEAP_KEY = 2; private static final RowType[] MAPPED = new RowType[256]; static { for (RowType rowType : values()) { MAPPED[(int) rowType.serialized - Byte.MIN_VALUE] = rowType; } } private final byte serialized; private final boolean discardDuringCompactions; private final boolean isPrimary; RowType(byte serialized, boolean discardDuringCompactions, boolean isPrimary) { this.serialized = serialized; this.discardDuringCompactions = discardDuringCompactions; this.isPrimary = isPrimary; } public boolean isDiscardedDuringCompactions() { return discardDuringCompactions; } public boolean isPrimary() { return isPrimary; } static public RowType fromByte(byte b) { return MAPPED[(int) b - Byte.MIN_VALUE]; } public byte toByte() { return serialized; } }