package com.github.sevntu.checkstyle.checks.coding;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class InputAvoidDefaultSerializableInInnerClassesCheck3 {
public class Foo implements java.io.Serializable {
private static final long serialVersionUID = 1L;
public Date date;
// start iterating methods with allowPartialImplementation == false
// real readObject, hasRead will become true
private void readObject(ObjectInputStream aInputStream)
throws ClassNotFoundException, IOException {
// always perform the default de-serialization first
aInputStream.defaultReadObject();
date = (Date) aInputStream.readObject();
}
// other public readObject - hasRead will become false
public Foo readObject(String str) throws ParseException {
Foo result = new Foo();
result.date = new SimpleDateFormat().parse(str);
return result;
}
// real writeObject, hasWrite will become true, but result will be
// false, since hasRead is already false
private void writeObject(ObjectOutputStream aOutputStream)
throws IOException {
aOutputStream.defaultWriteObject();
aOutputStream.writeObject(date);
}
}
}