KeyDescriptor<MethodCallData> () { return new KeyDescriptor<>() { @Override public int getHashCode(MethodCallData value) { return value.hashCode(); } @Override public boolean isEqual(MethodCallData val1, MethodCallData val2) { return val1.equals(val2); } @Override public void save(@NotNull DataOutput out, MethodCallData value) throws IOException { EnumeratorStringDescriptor.INSTANCE.save(out, value.getMethodName()); DataInputOutputUtil.writeINT(out, value.getNullParameterIndex()); } @Override public MethodCallData read(@NotNull DataInput in) throws IOException { return new MethodCallData(EnumeratorStringDescriptor.INSTANCE.read(in), DataInputOutputUtil.readINT(in)); } }; }