LanguageResource.java
01 /*
02  *  LanguageResource.java
03  *
04  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
05  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
06  *
07  *  This file is part of GATE (see http://gate.ac.uk/), and is free
08  *  software, licenced under the GNU Library General Public License,
09  *  Version 2, June 1991 (in the distribution as file licence.html,
10  *  and also available at http://gate.ac.uk/gate/licence.html).
11  *
12  *  Hamish Cunningham, 11/Feb/2000
13  *
14  *  $Id: LanguageResource.java 17662 2014-03-14 16:19:05Z markagreenwood $
15  */
16 
17 package gate;
18 
19 import gate.persist.PersistenceException;
20 
21 /** Models all sorts of language resources.
22   */
23 public interface LanguageResource extends Resource
24 {
25   /** Get the data store that this LR lives in. Null for transient LRs. */
26   public DataStore getDataStore();
27 
28   /** Set the data store that this LR lives in. */
29   public void setDataStore(DataStore dataStorethrows PersistenceException;
30 
31   /** Returns the persistence id of this LR, if it has been stored in
32    *  a datastore. Null otherwise.
33    */
34   public Object getLRPersistenceId();
35 
36   /** Sets the persistence id of this LR. To be used only in the
37    *  Factory and DataStore code.
38    */
39   public void setLRPersistenceId(Object lrID);
40 
41   /** Save: synchonise the in-memory image of the LR with the persistent
42     * image.
43     */
44   public void sync() throws PersistenceException,SecurityException;
45 
46   /**
47    * Returns true of an LR has been modified since the last sync.
48    * Always returns false for transient LRs.
49    */
50   public boolean isModified();
51 
52   /**
53    * Returns the parent LR of this LR.
54    * Only relevant for LRs that support shadowing. Most do not by default.
55    */
56   public LanguageResource getParent()
57     throws PersistenceException,SecurityException;
58 
59   /**
60    * Sets the parent LR of this LR.
61    * Only relevant for LRs that support shadowing. Most do not by default.
62    */
63   public void setParent(LanguageResource parentLR)
64     throws PersistenceException,SecurityException;
65 
66 // interface LanguageResource