+ /*
+ * if a map is present, unless it is 1:1 and has no SequenceI mate, it cannot be a primary reference.
+ */
+ if (map != null)
+ {
+ SequenceI mto = map.getTo();
+ if (mto != null)
+ {
+ return false;
+ }
+ MapList ml = map.getMap();
+ if (ml.getFromRatio() != ml.getToRatio() || ml.getFromRatio() != 1)
+ {
+ return false;
+ }
+ // check map is between identical single contiguous ranges
+ List<int[]> fromRanges, toRanges;
+ if ((fromRanges = ml.getFromRanges()).size() != 1
+ || (toRanges = ml.getToRanges()).size() != 1)
+ {
+ return false;
+ }
+ if (fromRanges.get(0)[0] != toRanges.get(0)[0]
+ || fromRanges.get(0)[1] != toRanges.get(0)[1])
+ {
+ return false;
+ }
+ }
+ if (version == null)
+ {
+ // no version string implies the reference has not been verified at all.
+ return false;
+ }
+
+ return DBRefSource.isPrimaryCandidate(ucversion);