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__ */