1 package jalview.datamodel;
4 * helper class to compute min/max/mean for a range on a contact list
9 public class ContactListImpl implements ContactListI
11 ContactListProviderI clist;
13 public static ContactListI newContactList(ContactListProviderI list)
15 return new ContactListImpl(list);
18 public ContactListImpl(ContactListProviderI list)
24 public int getPosition()
26 return clist.getPosition();
30 public double getContactAt(int column)
32 return clist.getContactAt(column);
36 public int getContactHeight()
38 return clist.getContactHeight();
42 public ContactRange getRangeFor(int from_column, int to_column)
44 // TODO: consider caching ContactRange for a particular call ?
45 if (clist instanceof ContactListI)
47 // clist may implement getRangeFor in a more efficient way, so use theirs
48 return ((ContactListI) clist).getRangeFor(from_column, to_column);
54 if (to_column > getContactHeight())
56 to_column = getContactHeight();
58 ContactRange cr = new ContactRange();
59 cr.setFrom_column(from_column);
60 cr.setTo_column(to_column);
62 for (int i = from_column; i <= to_column; i++)
64 double contact = getContactAt(i);
75 if (cr.getMax() < contact)
80 if (cr.getMin() < contact)
89 cr.setMean(tot / (1 + to_column - from_column));