package org.corfudb.protocols.wireprotocol; import io.netty.buffer.ByteBuf; import lombok.AllArgsConstructor; import lombok.Getter; import java.util.Arrays; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * Created by mwei on 8/16/16. */ @AllArgsConstructor public enum DataType implements ICorfuPayload<DataType> { DATA(0, true), EMPTY(1, false), HOLE(2, true), TRIMMED(3, false), RANK_ONLY(4, true); final int val; @Getter private boolean metadataAware; byte asByte() { return (byte) val; } @Override public void doSerialize(ByteBuf buf) { buf.writeByte(asByte()); } public static Map<Byte, DataType> typeMap = Arrays.stream(DataType.values()) .collect(Collectors.toMap(DataType::asByte, Function.identity())); }