import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; import com.hazelcast.spi.Operation; import java.io.IOException; import java.util.HashMap; import java.util.Map; @SuppressWarnings("unused") class CounterMigrationOperation extends Operation { private Map<String, Integer> migrationData; public CounterMigrationOperation() { } CounterMigrationOperation(Map<String, Integer> migrationData) { this.migrationData = migrationData; } @Override public void run() throws Exception { CounterService service = getService(); Container container = service.containers[getPartitionId()]; container.applyMigrationData(migrationData); } @Override protected void writeInternal(ObjectDataOutput out) throws IOException { out.writeInt(migrationData.size()); for (Map.Entry<String, Integer> entry : migrationData.entrySet()) { out.writeUTF(entry.getKey()); out.writeInt(entry.getValue()); } } @Override protected void readInternal(ObjectDataInput in) throws IOException { int size = in.readInt(); migrationData = new HashMap<String, Integer>(); for (int i = 0; i < size; i++) { migrationData.put(in.readUTF(), in.readInt()); } } }