package org.vertexium.accumulo.iterator.model; import org.apache.hadoop.io.Text; import org.vertexium.accumulo.iterator.util.DataOutputStreamUtils; import java.io.DataOutputStream; import java.io.IOException; import java.util.*; public class VertexElementData extends ElementData { public final EdgesWithEdgeInfo outEdges = new EdgesWithEdgeInfo(); public final EdgesWithEdgeInfo inEdges = new EdgesWithEdgeInfo(); public final Set<Text> hiddenEdges = new HashSet<>(); public final List<SoftDeleteEdgeInfo> outSoftDeletes = new ArrayList<>(); public final List<SoftDeleteEdgeInfo> inSoftDeletes = new ArrayList<>(); @Override public void clear() { super.clear(); outEdges.clear(); inEdges.clear(); hiddenEdges.clear(); outSoftDeletes.clear(); inSoftDeletes.clear(); } @Override protected void encode(DataOutputStream out, EnumSet<IteratorFetchHint> fetchHints) throws IOException { super.encode(out, fetchHints); DataOutputStreamUtils.encodeEdges(out, outEdges, fetchHints.contains(IteratorFetchHint.OUT_EDGE_LABELS) && !fetchHints.contains(IteratorFetchHint.OUT_EDGE_REFS)); DataOutputStreamUtils.encodeEdges(out, inEdges, fetchHints.contains(IteratorFetchHint.IN_EDGE_LABELS) && !fetchHints.contains(IteratorFetchHint.IN_EDGE_REFS)); } @Override protected byte getTypeId() { return TYPE_ID_VERTEX; } }