package com.bagri.client.hazelcast; import static com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl.factoryId; import static com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl.cli_PartitionStats; import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; import com.hazelcast.nio.serialization.IdentifiedDataSerializable; public class PartitionStatistics implements Comparable<PartitionStatistics>, IdentifiedDataSerializable { private String address; private int partId; private int docCount; private long docCost; private int docInQueue; private int docActive; private long conCost; private int eltCount; private long eltCost; private int idxCount; private long idxCost; private int resCount; private long resCost; public PartitionStatistics() { // ser } public PartitionStatistics(String address, int partId, int docCount, long docCost, int docInQueue, int docActive, long conCost, int eltCount, long eltCost, int idxCount, long idxCost, int resCount, long resCost) { this.address = address; this.partId = partId; this.docCount = docCount; this.docCost = docCost; this.docInQueue = docInQueue; this.docActive = docActive; this.conCost = conCost; this.eltCount = eltCount; this.eltCost = eltCost; this.idxCount = idxCount; this.idxCost = idxCost; this.resCount = resCount; this.resCost = resCost; } /** * @return the address */ public String getAddress() { return address; } /** * @return the partId */ public int getPartId() { return partId; } /** * @return the document count */ public int getDocumentCount() { return docCount; } /** * @return the document cost */ public long getDocumentCost() { return docCost; } /** * @return the updating document count */ public int getQueuedDocumentCount() { return docInQueue; } /** * @return the active count */ public int getActiveDocumentCount() { return docActive; } /** * @return the content cost */ public long getContentCost() { return conCost; } /** * @return the element count */ public int getElementCount() { return eltCount; } /** * @return the element cost */ public long getElementCost() { return eltCost; } /** * @return the index count */ public int getIndexCount() { return idxCount; } /** * @return the index cost */ public long getIndexCost() { return idxCost; } /** * @return the result count */ public int getResultCount() { return resCount; } /** * @return the result cost */ public long getResultCost() { return resCost; } public Map<String, Object> toMap() { Map<String, Object> result = new HashMap<>(5); result.put("address", address); result.put("partition", partId); result.put("document count", docCount); result.put("document cost", docCost); result.put("in queue", docInQueue); result.put("active count", docActive); result.put("content cost", conCost); result.put("element count", eltCount); result.put("element cost", eltCost); result.put("index count", idxCount); result.put("index cost", idxCost); result.put("result count", resCount); result.put("result cost", resCost); return result; } @Override public int compareTo(PartitionStatistics o) { return Integer.compare(partId, o.partId); } @Override public int getFactoryId() { return factoryId; } @Override public int getId() { return cli_PartitionStats; } @Override public void readData(ObjectDataInput in) throws IOException { address = in.readUTF(); partId = in.readInt(); docCount = in.readInt(); docCost = in.readLong(); docInQueue = in.readInt(); docActive = in.readInt(); conCost = in.readLong(); eltCount = in.readInt(); eltCost = in.readLong(); idxCount = in.readInt(); idxCost = in.readLong(); resCount = in.readInt(); resCost = in.readLong(); } @Override public void writeData(ObjectDataOutput out) throws IOException { out.writeUTF(address); out.writeInt(partId); out.writeInt(docCount); out.writeLong(docCost); out.writeInt(docInQueue); out.writeInt(docActive); out.writeLong(conCost); out.writeInt(eltCount); out.writeLong(eltCost); out.writeInt(idxCount); out.writeLong(idxCost); out.writeInt(resCount); out.writeLong(resCost); } }