package org.doukaku.ja.preference;

import java.util.prefs.Preferences;
import java.util.prefs.BackingStoreException;

public class HelloPreference {
	private static final String MESSAGE_KEY = "message";
	private static final String DEFAULT_MESSAGE = "Hello, Preference.";

	private String message;
	private Preferences pref;

	public HelloPreference() {
		loadPreference();
	}

	public void loadPreference() {
		setPreference(Preferences.userNodeForPackage(this.getClass()));
		setMessage(pref.get(MESSAGE_KEY, DEFAULT_MESSAGE));
	}

	public void setMessage(String message) { this.message = message; }
	public String getMessage() { return this.message; }
	public void setPreference(Preferences pref) { this.pref = pref; }
	public Preferences getPreference() { return this.pref; }

	public void showMessage() {
		System.out.println(getMessage());
	}
	public void storePreference() throws BackingStoreException {
		Preferences pref = getPreference();
		pref.put(MESSAGE_KEY, getMessage());
		pref.flush();
	}

	public static void main(String[] args) {
		try {
			HelloPreference	hello = new HelloPreference();
			if (args.length > 0) {
				hello.setMessage(args[0]);
			}
			hello.showMessage();
			hello.storePreference();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}
