View Javadoc

1   package org.ocltf.model.repository;
2   
3   import java.io.InputStream;
4   import java.net.URL;
5   
6   /***
7    * An interface for objects responsible for being a repository into which an object model can 
8    * be loaded.
9    * 
10   * <p> OCLTF does code generation from an object model.  There must exist a repository in which
11   * the model can be loaded.  The repository must be able to load the object model 
12   * given a URL. Any Repository that supports this API can be used by OCLTF. </p>
13   * 
14   * @see org.ocltf.model.ModelFacade
15   */
16  public interface Repository {
17  	
18  	/***
19  	 * Initialize the repository.
20  	 */
21  	public void init();
22  
23  	/***
24  	 * Perform any cleanup required.
25  	 */
26  	public void cleanup();
27  
28  	/***
29  	 * Loads the object model into the repository from the given URL.
30  	 * 
31  	 * <p> An URLs can be used to point to files on the filesystem, 
32  	 * a file in a jar file, a file from a website, data from a database, etc... </p>
33  	 * 
34  	 * @param modelUri the URI of model
35  	 * @throws RepositoryException thrown if anything happesn during read.
36  	 */
37  	public void loadModel(URL modelUri)
38  		throws RepositoryException;
39  		
40  	/***
41  	 * read the object model into the repository from the given stream.
42  	 * 
43  	 * <p> An URLs can be used to point to files on the filesystem, 
44  	 * a file in a jar file, a file from a website, data from a database, etc... </p>
45  	 * 
46       * @param modelStream Input stream to be used for reading an XMI document (if
47       * <code>null</code> is passed, will try to open a connection to the
48       * spefified modelUri.
49       * @param modelUri URI of the XMI document to be read from. If set to <code>null</code>,
50       * Repository will not be able to resolve relative hrefs.
51       * @throws RepositoryException thrown if anything happesn during read.
52  	 */
53  	public void loadModel(InputStream modelStream, URL modelUri)
54  		throws RepositoryException;
55  
56  	/***
57  	 * Returns the date and time of when the model was last modified
58  	 *
59  	 *@return the lastModified time
60  	 */
61  	public long getLastModified();
62  
63  	/***
64  	 * returns the top-level model object from the repository
65  	 *
66  	 *@return Object The model object.
67  	 */
68  	public Object getModel();
69  
70  }