import uk.ac.vamsas.client.Vobject;\r
import uk.ac.vamsas.client.VorbaId;\r
import uk.ac.vamsas.objects.core.Entry;\r
+import uk.ac.vamsas.objects.core.Provenance;\r
+import uk.ac.vamsas.objects.core.Seg;\r
\r
/**\r
* Holds all the common machinery for binding objects to vamsas objects\r
*/\r
protected Object getvObj2jv(uk.ac.vamsas.client.Vobject vobj)\r
{\r
+ if (vobj2jv==null)\r
+ return null;\r
VorbaId id = vobj.getVorbaId();\r
if (id == null)\r
{\r
}\r
return vObjs;\r
}\r
+ // utility functions\r
+ /**\r
+ * get start<end range of segment, adjusting for inclusivity flag and\r
+ * polarity.\r
+ *\r
+ * @param visSeg\r
+ * @param ensureDirection when true - always ensure start is less than end.\r
+ * @return int[] { start, end, direction} where direction==1 for range running from end to start.\r
+ */\r
+ public int[] getSegRange(Seg visSeg, boolean ensureDirection)\r
+ {\r
+ boolean incl = visSeg.getInclusive();\r
+ // adjust for inclusive flag.\r
+ int pol = (visSeg.getStart() <= visSeg.getEnd()) ? 1 : -1; // polarity of\r
+ // region.\r
+ int start = visSeg.getStart() + (incl ? 0 : pol);\r
+ int end = visSeg.getEnd() + (incl ? 0 : -pol);\r
+ if (ensureDirection && pol == -1)\r
+ {\r
+ // jalview doesn't deal with inverted ranges, yet.\r
+ int t = end;\r
+ end = start;\r
+ start = t;\r
+ }\r
+ return new int[]\r
+ {\r
+ start, end, pol < 0 ? 1 : 0};\r
+ }\r
+ /**\r
+ * provenance bits\r
+ */\r
+ protected jalview.datamodel.Provenance getJalviewProvenance(Provenance prov)\r
+ {\r
+ // TODO: fix App and Action entries and check use of provenance in jalview.\r
+ jalview.datamodel.Provenance jprov = new jalview.datamodel.Provenance();\r
+ for (int i = 0; i < prov.getEntryCount(); i++)\r
+ {\r
+ jprov.addEntry(prov.getEntry(i).getUser(), prov.getEntry(i).getAction(),\r
+ prov.getEntry(i).getDate(),\r
+ prov.getEntry(i).getId());\r
+ }\r
+\r
+ return jprov;\r
+ }\r
+\r
+ /**\r
+ *\r
+ * @return default initial provenance list for a Jalview created vamsas\r
+ * object.\r
+ */\r
+ Provenance dummyProvenance()\r
+ {\r
+ return dummyProvenance(null);\r
+ }\r
+\r
+ protected Entry dummyPEntry(String action)\r
+ {\r
+ Entry entry = new Entry();\r
+ entry.setApp(this.provEntry.getApp());\r
+ if (action != null)\r
+ {\r
+ entry.setAction(action);\r
+ }\r
+ else\r
+ {\r
+ entry.setAction("created.");\r
+ }\r
+ entry.setDate(new java.util.Date());\r
+ entry.setUser(this.provEntry.getUser());\r
+ return entry;\r
+ }\r
+\r
+ protected Provenance dummyProvenance(String action)\r
+ {\r
+ Provenance prov = new Provenance();\r
+ prov.addEntry(dummyPEntry(action));\r
+ return prov;\r
+ }\r
+\r
+ protected void addProvenance(Provenance p, String action)\r
+ {\r
+ p.addEntry(dummyPEntry(action));\r
+ }\r
+\r
}\r