--- /dev/null
+/**\r
+ * \r
+ */\r
+package uk.ac.vamsas.objects;\r
+\r
+import uk.ac.vamsas.client.Vobject;\r
+import uk.ac.vamsas.client.VorbaId;\r
+\r
+/**\r
+ * Provides methods to map between VorbaIds and arbitrary object references\r
+ * for use by a vamsas Application when moving between its own datamodel and the\r
+ * Vamsas session objects.\r
+ * The implementing class needs a valid client-document instance if it is expected\r
+ * to be able to register newly created vObjects. Normally this will be the case if\r
+ * the implementing class has been generated by an IClient implementation which will\r
+ * also have passed it a reference to the current valid IClientDocument instance for\r
+ * that application's document access thread. \r
+ * @author JimP\r
+ */\r
+public interface IVorbaBinding {\r
+/**\r
+ * get the Vamsas session object bound to an internal object.\r
+ * @param appObject\r
+ * @return valid session object or Null.\r
+ */\r
+ Vobject getVamsasObjectFor(Object appObject);\r
+ /**\r
+ * Get the Application's own object bound to an existing Vamsas session object\r
+ * @param vObject - object in vamsas document\r
+ * @return apps object bound to the vamsas document object\r
+ */\r
+ Object getAppsObjectFor(uk.ac.vamsas.client.Vobject vObject);\r
+\r
+ /**\r
+ * Record a mapping between a vamsas document object and an application's internal object.\r
+ * @param appObject\r
+ * @param vObject - this must have been \r
+ */\r
+ void bindAppsObjectToVamsasObject(Object appObject, uk.ac.vamsas.client.Vobject vObject);\r
+}\r