01: /*
02: * Copyright (C) 2005 Jeff Tassin
03: *
04: * This library is free software; you can redistribute it and/or
05: * modify it under the terms of the GNU Lesser General Public
06: * License as published by the Free Software Foundation; either
07: * version 2.1 of the License, or (at your option) any later version.
08: *
09: * This library is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: * Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public
15: * License along with this library; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18:
19: package com.jeta.swingbuilder.interfaces.app;
20:
21: import java.io.IOException;
22:
23: /**
24: * This interface describes a service used to store/retrive objects based on a
25: * key name. Top level application services can use this to store information
26: * such as user properties between program invocations. The keyName is unique,
27: * so only one object per keyname. Of course, a single object can be composed of
28: * many subobjects. Serialization is used as the storage mechanism, so the
29: * objects must be serializable.
30: *
31: * @author Jeff Tassin
32: */
33: public interface ObjectStore {
34: /**
35: * Deletes the object from the store cache as well as on disk
36: */
37: public void delete(String keyName) throws IOException;
38:
39: /**
40: * Commits the entire store to disk
41: */
42: public void flush() throws IOException;
43:
44: /**
45: * Commits the specified object to disk
46: */
47: public void flush(String keyName) throws IOException;
48:
49: /**
50: * loads the named object from the store. This object is also deserialized
51: * at this point since the store only keeps track of serialized data
52: *
53: * @param keyName
54: * the unique name of the lobject to retrieve
55: * @return the instantiated object from the store
56: * @throws IOException
57: * if an error occurs during deserialization
58: */
59: public Object load(String keyName) throws IOException;
60:
61: /**
62: * loads the named object from the store. This object is also deserialized
63: * at this point since the store only keeps track of serialized data
64: *
65: * @param keyName
66: * the unique name of the lobject to retrieve
67: * @param defaultValue
68: * the value to return if the name is not found in the store
69: * @return the instantiated object from the store. The default value is
70: * returned if the name is not found.
71: * @throws IOException
72: * if an error occurs during deserialization
73: */
74: public Object load(String keyName, Object defaultValue)
75: throws IOException;
76:
77: /**
78: * stores the named object to the store. The object is serialized here so
79: * and exception can be thrown.
80: */
81: public void store(String keyName, Object obj) throws IOException;
82:
83: }
|