package serialisierung6;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.ObjectStreamField;
import java.io.Serializable;

/**
 * Demonstriert die Markierung der Instanzvariablen die serialisiert werden sollen,
 * mittels serialPersostentFields.
 * 
 * @author Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet
 *         Osnabrueck
 * @date 31.05.2007
 */
@SuppressWarnings("serial")
public class MySerializableClass implements Serializable {
	private String stringWert;

	private int intWert;

	private double doubleWert;

	private static String klassenVariable = "Klassenvariable";

	private BufferedReader br;

	private static final ObjectStreamField[] serialPersistentFields = {
			new ObjectStreamField("stringWert", String.class),
			new ObjectStreamField("doubleWert", Double.TYPE)
//            new ObjectStreamField("klassenVariable", String.class)
	};

	public MySerializableClass(String s, int i, double d) {
		stringWert = s;
		intWert = i;
		doubleWert = d;
		
		br = new BufferedReader(new InputStreamReader(System.in));
	}

	public String toString() {
		StringBuilder sb = new StringBuilder();

		sb.append("Ich bin ein MySerializableClass Objekt\n");
		sb.append("Meine Werte lauten:\n");
		sb.append("    stringWert:      ").append(stringWert).append("\n");
		sb.append("    intWert:         ").append(intWert).append("\n");
		sb.append("    doubleWert:         ").append(doubleWert).append("\n");
		sb.append("    klassenVariable: ").append(klassenVariable).append("\n");
		sb.append("    BufferedReader:  ").append(br).append("\n");

		return sb.toString();
	}
}
