DataExternalizer<List<FileIncludeInfoImpl>> () { return new DataExternalizer<>() { @Override public void save(@NotNull DataOutput out, List<FileIncludeInfoImpl> value) throws IOException { out.writeInt(value.size()); for (FileIncludeInfoImpl info : value) { IOUtil.writeUTF(out, info.path); out.writeInt(info.offset); out.writeBoolean(info.runtimeOnly); IOUtil.writeUTF(out, info.providerId); } } @Override public List<FileIncludeInfoImpl> read(@NotNull DataInput in) throws IOException { int size = in.readInt(); ArrayList<FileIncludeInfoImpl> infos = new ArrayList<>(size); for (int i = 0; i < size; i++) { infos.add(new FileIncludeInfoImpl(IOUtil.readUTF(in), in.readInt(), in.readBoolean(), IOUtil.readUTF(in))); } return infos; } }; }