1 package jalview.datamodel.xdb.embl;
\r
3 import java.util.Iterator;
\r
4 import java.util.Vector;
\r
6 public class EmblFeatureLocations {
\r
9 boolean locationComplement;
\r
11 * @return the locationComplement
\r
13 public boolean isLocationComplement() {
\r
14 return locationComplement;
\r
17 * @param locationComplement the locationComplement to set
\r
19 public void setLocationComplement(boolean locationComplement) {
\r
20 this.locationComplement = locationComplement;
\r
23 * @return the locationType
\r
25 public String getLocationType() {
\r
26 return locationType;
\r
29 * @param locationType the locationType to set
\r
31 public void setLocationType(String locationType) {
\r
32 this.locationType = locationType;
\r
35 * @return the locElements
\r
37 public Vector getLocElements() {
\r
41 * @param locElements the locElements to set
\r
43 public void setLocElements(Vector locElements) {
\r
44 this.locElements = locElements;
\r
47 * Return all location elements as start-end pairs on referenced sequence
\r
48 * TODO: pass back complement and 'less than or more than' range information
\r
49 * @return int[] { start1, end1, ... }
\r
51 public int[] getElementRanges() {
\r
52 if (locationType.equalsIgnoreCase("single")) {
\r
53 int[] se = new int[locElements.size()*2];
\r
55 for (Iterator le=locElements.iterator();le.hasNext();) {
\r
56 EmblFeatureLocElement loce = (EmblFeatureLocElement) le.next();
\r
57 BasePosition bp[] = loce.getBasePositions();
\r
59 se[sepos++] = Integer.parseInt(bp[0].getPos());
\r
60 se[sepos++] = Integer.parseInt(bp[1].getPos());
\r
65 if (locationType.equalsIgnoreCase("join")) {
\r
66 int[] se = new int[locElements.size()*2];
\r
68 for (Iterator le=locElements.iterator();le.hasNext();) {
\r
69 EmblFeatureLocElement loce = (EmblFeatureLocElement) le.next();
\r
70 BasePosition bp[] = loce.getBasePositions();
\r
72 se[sepos++] = Integer.parseInt(bp[0].getPos());
\r
73 se[sepos++] = Integer.parseInt(bp[1].getPos());
\r
78 if (locationType!=null)
\r
80 jalview.bin.Cache.log.error("EmbleFeatureLocations.getElementRanges cannot deal with locationType=='"+locationType+"'");
\r