licencing and format applied (eclipse)
[jalview.git] / src / org / biojava / dasobert / feature / AbstractFeatureTrack.java
index af6236f..0ad2df7 100644 (file)
@@ -26,175 +26,253 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-/** An Abstract class representing a Feature as being diplayed in the SeqFeaturePanel 
- *  A feature corresponds to everything that is visible in a "line" and can contain one or multiple Segments.
+/**
+ * An Abstract class representing a Feature as being diplayed in the
+ * SeqFeaturePanel A feature corresponds to everything that is visible in a
+ * "line" and can contain one or multiple Segments.
  * 
  * 
  * @author Andreas Prlic
- *
+ * 
  */
-public abstract class AbstractFeatureTrack implements FeatureTrack,Cloneable {
-
-       String name;
-       String method;
-       String type;
-       List  segments ;
-       String note;
-       String link;
-       String source;
-       String score;
-       String orientation;
-       String typeID;
-       String typeCategory;
-
-       public AbstractFeatureTrack() {
-               source = "Unknown";
-               method = "Unknown";
-               type   = "Unknown";
-               note   = "";
-               link   = "";
-               score  = "";
-               orientation = null;
-               segments = new ArrayList();
-
-       }
-
-       public abstract Object clone();
-
-
-       public String toString() {
-               String str = "Feature: method: " + method +" type: " + type ;
-               if ( name != null)
-                       str += " name: " + name;
-               
-               if (( note != null) && (! note.equals("null")))
-               {
-                       if (note.length() > 40)
-                               str += "note: " +note.substring(0,39) + "...";
-                       else
-                               str += " note: "+note;
-               }
-               str += " # segments: " + segments.size() ;
-               return str ;
-       }
-
-
-       /** returns true if the specified sequence position is within the range of this Feature
-        * 
-        * @param seqPosition the position to check
-        * @return true if the position is within the ranges of the segments of this feature
-        */
-       public boolean overlaps(int seqPosition){
-               List segments = getSegments();
-               Iterator iter =segments.iterator();
-
-               while (iter.hasNext()){
-
-                       Segment seg = (Segment) iter.next();
-                       if ( seg.overlaps(seqPosition) )
-                               return true;                                     
-               }
-
-               return false;
-       }
-
-       public void setSource(String s) { source = s;}
-       public String getSource() { return source; };
-
-
-       public void setName(String nam) { name = nam; }
-       public String getName() { return name; }
-
-       public void setMethod(String methd) { method = methd ; }
-       public String getMethod() { return method ; }
-
-       public void setType(String typ) { type = typ ; }
-       public String getType() { return type ; }
-
-       public void setNote(String nte) { 
-               if (nte != null)
-                       note = nte; 
-               }
-       public String getNote() { return note ; }
-
-       public void setLink(String lnk) { link = lnk;}
-       public String getLink() { return link;}
-
-       public void setScore(String s){ score = s;}
-       public String getScore() { return score;}
-
-       /** add a segment to this feature */
-       public void addSegment(int start, int end, String name) {
-               Segment s = new SegmentImpl() ;
-               s.setStart(start);
-               s.setEnd(end) ;
-               s.setName(name);
-               s.setParent(this);
-               segments.add(s);
-       }
-
-       public void addSegment( Segment s ){
-               s.setParent(this);
-               segments.add(s);
-       }
-
-       public List getSegments() {
-               return segments ;
-       }
-
-
-       public String getOrientation() {
-               return orientation;
-       }
-
-       public void setOrientation(String orientation) {
-               this.orientation = orientation;
-       }
-
-       /** test if two features are equivalent 
-        * important: only comares type,method and source.
-        * The individual segments are not compared!
-        * 
-        * */
-       public  boolean equals(FeatureTrack feat) {
-//             if ( note == null) {
-               //  if (( feat.getNote() == null ) || 
-               // ( feat.getNote().equals(""))) {
-               //} else if ( this.note.equals(feat.getNote())){
-               //  return true;
-               //}
-               if ( this.type.equals(feat.getType())){
-                       if ( this.method.equals(feat.getMethod())){
-                               if ( this.source.equals(feat.getSource())){                                                                             
-                                       if (this.note.equals(feat.getNote())){
-                                               return true;
-                                       }
-                               }
-                       }
-               }
-               return false;
-
-       }
-       public String getTypeCategory() {
-               // TODO Auto-generated method stub
-               return typeCategory;
-       }
-
-       public String getTypeID() {
-               // TODO Auto-generated method stub
-               return typeID;
-       }
-
-       public void setTypeCategory(String typeCategory) {
-               this.typeCategory = typeCategory;
-               
-       }
-
-       public void setTypeID(String typeID) {
-               this.typeID = typeID;
-               
-       }
-       
-
+public abstract class AbstractFeatureTrack implements FeatureTrack,
+        Cloneable
+{
+
+  String name;
+
+  String method;
+
+  String type;
+
+  List segments;
+
+  String note;
+
+  String link;
+
+  String source;
+
+  String score;
+
+  String orientation;
+
+  String typeID;
+
+  String typeCategory;
+
+  public AbstractFeatureTrack()
+  {
+    source = "Unknown";
+    method = "Unknown";
+    type = "Unknown";
+    note = "";
+    link = "";
+    score = "";
+    orientation = null;
+    segments = new ArrayList();
+
+  }
+
+  public abstract Object clone();
+
+  public String toString()
+  {
+    String str = "Feature: method: " + method + " type: " + type;
+    if (name != null)
+      str += " name: " + name;
+
+    if ((note != null) && (!note.equals("null")))
+    {
+      if (note.length() > 40)
+        str += "note: " + note.substring(0, 39) + "...";
+      else
+        str += " note: " + note;
+    }
+    str += " # segments: " + segments.size();
+    return str;
+  }
+
+  /**
+   * returns true if the specified sequence position is within the range of this
+   * Feature
+   * 
+   * @param seqPosition
+   *                the position to check
+   * @return true if the position is within the ranges of the segments of this
+   *         feature
+   */
+  public boolean overlaps(int seqPosition)
+  {
+    List segments = getSegments();
+    Iterator iter = segments.iterator();
+
+    while (iter.hasNext())
+    {
+
+      Segment seg = (Segment) iter.next();
+      if (seg.overlaps(seqPosition))
+        return true;
+    }
+
+    return false;
+  }
+
+  public void setSource(String s)
+  {
+    source = s;
+  }
+
+  public String getSource()
+  {
+    return source;
+  };
+
+  public void setName(String nam)
+  {
+    name = nam;
+  }
+
+  public String getName()
+  {
+    return name;
+  }
+
+  public void setMethod(String methd)
+  {
+    method = methd;
+  }
+
+  public String getMethod()
+  {
+    return method;
+  }
+
+  public void setType(String typ)
+  {
+    type = typ;
+  }
+
+  public String getType()
+  {
+    return type;
+  }
+
+  public void setNote(String nte)
+  {
+    if (nte != null)
+      note = nte;
+  }
+
+  public String getNote()
+  {
+    return note;
+  }
+
+  public void setLink(String lnk)
+  {
+    link = lnk;
+  }
+
+  public String getLink()
+  {
+    return link;
+  }
+
+  public void setScore(String s)
+  {
+    score = s;
+  }
+
+  public String getScore()
+  {
+    return score;
+  }
+
+  /** add a segment to this feature */
+  public void addSegment(int start, int end, String name)
+  {
+    Segment s = new SegmentImpl();
+    s.setStart(start);
+    s.setEnd(end);
+    s.setName(name);
+    s.setParent(this);
+    segments.add(s);
+  }
+
+  public void addSegment(Segment s)
+  {
+    s.setParent(this);
+    segments.add(s);
+  }
+
+  public List getSegments()
+  {
+    return segments;
+  }
+
+  public String getOrientation()
+  {
+    return orientation;
+  }
+
+  public void setOrientation(String orientation)
+  {
+    this.orientation = orientation;
+  }
+
+  /**
+   * test if two features are equivalent important: only comares type,method and
+   * source. The individual segments are not compared!
+   * 
+   */
+  public boolean equals(FeatureTrack feat)
+  {
+    // if ( note == null) {
+    // if (( feat.getNote() == null ) ||
+    // ( feat.getNote().equals(""))) {
+    // } else if ( this.note.equals(feat.getNote())){
+    // return true;
+    // }
+    if (this.type.equals(feat.getType()))
+    {
+      if (this.method.equals(feat.getMethod()))
+      {
+        if (this.source.equals(feat.getSource()))
+        {
+          if (this.note.equals(feat.getNote()))
+          {
+            return true;
+          }
+        }
+      }
+    }
+    return false;
+
+  }
+
+  public String getTypeCategory()
+  {
+    // TODO Auto-generated method stub
+    return typeCategory;
+  }
+
+  public String getTypeID()
+  {
+    // TODO Auto-generated method stub
+    return typeID;
+  }
+
+  public void setTypeCategory(String typeCategory)
+  {
+    this.typeCategory = typeCategory;
+
+  }
+
+  public void setTypeID(String typeID)
+  {
+    this.typeID = typeID;
+
+  }
 
 }