View Javadoc
1   package xuml.tools.diagram;
2   
3   import xuml.tools.datastore.DatastoreText;
4   import xuml.tools.datastore.DatastoreTextFactory;
5   import xuml.tools.datastore.memory.DatastoreTextFactoryMemory;
6   
7   public class Context {
8   
9       private static Context instance;
10  
11      public synchronized static Context instance() {
12          if (instance == null)
13              instance = new Context();
14          return instance;
15      }
16  
17      private Context() {
18          // disable constructor outside of this class
19          // must use static instance
20      }
21  
22      private DatastoreTextFactory datastoreFactory = new DatastoreTextFactoryMemory();
23      private DatastoreText datastore;
24  
25      public void setDatastoreFactory(DatastoreTextFactory datastoreFactory) {
26          this.datastoreFactory = datastoreFactory;
27      }
28  
29      public synchronized DatastoreText getDatastore() {
30          if (datastore == null)
31              datastore = datastoreFactory.create();
32          return datastore;
33      }
34  }