KeyDescriptor<SignatureData> () { return new KeyDescriptor<SignatureData>() { @Override public int getHashCode(SignatureData value) { return value.hashCode(); } @Override public boolean isEqual(SignatureData val1, SignatureData val2) { return val1.equals(val2); } @Override public void save(@NotNull DataOutput out, SignatureData value) throws IOException { DataInputOutputUtil.writeINT(out, value.getRawReturnType()); out.writeByte(value.getIteratorKind()); out.writeBoolean(value.isStatic()); } @Override public SignatureData read(@NotNull DataInput in) throws IOException { return new SignatureData(DataInputOutputUtil.readINT(in), in.readByte(), in.readBoolean()); } }; }