1 /* 2 * Copyright (c) 2003-2008 by Cosylab d. d. 3 * 4 * This file is part of Java-Common. 5 * 6 * Java-Common is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * Java-Common is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with Java-Common. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package com.cosylab.application.state; 21 22 /** 23 * This interface has to be implemented by the components which will exchange 24 * its state with the <code>StateKeeper</code> 25 * 26 * @author dvitas 27 */ 28 public interface StateOriginator 29 { 30 /** 31 * Will be called by the <code>StateKeeper</code> in the process of the 32 * application state saving. The component which implements this interface 33 * will tipycally use <code>StateFactory</code> to create a 34 * <code>State</code> object and fill it with needed values. For example a 35 * component can use this snippet. 36 * <pre> 37 * <code> 38 * public State getState() { 39 * State s = StateFactory.createState(); 40 * s.putDouble("Min", getMinimum()); 41 * s.putDouble("Max", getMaximum()); 42 * s.putString("Format", getFormat()); 43 * s.putString("Units", getUnits()); 44 * return s; 45 * } 46 * </code> 47 * </pre> 48 * 49 * @return state object 50 */ 51 public State getState(); 52 53 /** 54 * Will be called by the <code>StateKeepr</code> when it reads 55 * <code>State</code> object which belongs to this component. 56 * 57 * @param state object previously created by this component 58 */ 59 public void setState(State state); 60 } 61 62 /* __oOo__ */