extracted from the jalview.io.VamsasDatastore bindjv2obj and associated methods.
[vamsas.git] / src / uk / ac / vamsas / objects / IVorbaBinding.java
1 /**\r
2  * \r
3  */\r
4 package uk.ac.vamsas.objects;\r
5 \r
6 import uk.ac.vamsas.client.Vobject;\r
7 import uk.ac.vamsas.client.VorbaId;\r
8 \r
9 /**\r
10  * Provides methods to map between VorbaIds and arbitrary object references\r
11  * for use by a vamsas Application when moving between its own datamodel and the\r
12  * Vamsas session objects.\r
13  * The implementing class needs a valid client-document instance if it is expected\r
14  * to be able to register newly created vObjects. Normally this will be the case if\r
15  * the implementing class has been generated by an IClient implementation which will\r
16  * also have passed it a reference to the current valid IClientDocument instance for\r
17  * that application's document access thread. \r
18  * @author JimP\r
19  */\r
20 public interface IVorbaBinding {\r
21 /**\r
22  * get the Vamsas session object bound to an internal object.\r
23  * @param appObject\r
24  * @return valid session object or Null.\r
25  */\r
26   Vobject getVamsasObjectFor(Object appObject);\r
27   /**\r
28    * Get the Application's own object bound to an existing Vamsas session object\r
29    * @param vObject - object in vamsas document\r
30    * @return apps object bound to the vamsas document object\r
31    */\r
32   Object getAppsObjectFor(uk.ac.vamsas.client.Vobject vObject);\r
33 \r
34   /**\r
35    * Record a mapping between a vamsas document object and an application's internal object.\r
36    * @param appObject\r
37    * @param vObject - this must have been \r
38    */\r
39   void bindAppsObjectToVamsasObject(Object appObject, uk.ac.vamsas.client.Vobject vObject);\r
40 }\r