| Persistence.java |
1 /*
2 * Copyright (c) 1998-2005, The University of Sheffield.
3 *
4 * This file is part of GATE (see http://gate.ac.uk/), and is free
5 * software, licenced under the GNU Library General Public License,
6 * Version 2, June 1991 (in the distribution as file licence.html,
7 * and also available at http://gate.ac.uk/gate/licence.html).
8 *
9 * Valentin Tablan 25/10/2001
10 *
11 * $Id: Persistence.java,v 1.4 2005/01/11 13:51:37 ian Exp $
12 *
13 */
14 package gate.util.persistence;
15
16 import java.io.Serializable;
17
18 import gate.creole.ResourceInstantiationException;
19 import gate.persist.PersistenceException;
20 /**
21 * Defines an object that holds persistent data about another object.
22 * Storing an arbitrary object will consist of creating an appropiate
23 * Persistence object for it and storing that one (via serialisation).
24 *
25 * Restoring a previously saved object will consist of restoring the persistence
26 * object and using the data it stores to create a new object that is as similar
27 * as possible to the original object.
28 */
29 public interface Persistence extends Serializable{
30
31 /**
32 * Populates this Persistence with the data that needs to be stored from the
33 * original source object.
34 */
35 public void extractDataFromSource(Object source)throws PersistenceException;
36
37 /**
38 * Creates a new object from the data contained. This new object is supposed
39 * to be a copy for the original object used as source for data extraction.
40 */
41 public Object createObject()throws PersistenceException,
42 ResourceInstantiationException;
43 }