package jalview.datamodel;
-import java.awt.Color;
-import java.math.BigInteger;
import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.HashMap;
import java.util.List;
-import java.util.Spliterator;
import java.util.StringTokenizer;
import jalview.bin.Console;
-public abstract class ContactMatrix implements ContactMatrixI
+public abstract class ContactMatrix extends GroupSetHolder implements ContactMatrixI
{
/**
* are contacts reflexive ?
@Override
public double getContactAt(int column)
{
- List<Float> clist;
- Float cl = null;
- if (symmetric)
- {
- if (p < column)
- {
- clist = contacts.get(p);
- cl = clist.get(column);
- }
- else
- {
- clist = contacts.get(column);
- cl = clist.get(p);
- }
- }
- else
- {
- clist = contacts.get(p);
- cl = clist.get(column);
- }
+ Float cl = getFloatElementAt(column, p);
if (cl == null)
{
// return 0 not NaN ?
}
});
}
-
+ private Float getFloatElementAt(int column, int p)
+ {
+
+ List<Float> clist;
+ Float cl = null;
+ if (symmetric)
+ {
+ if (p < column)
+ {
+ clist = contacts.get(p);
+ cl = clist.get(column);
+ }
+ else
+ {
+ clist = contacts.get(column);
+ cl = clist.get(p);
+ }
+ }
+ else
+ {
+ clist = contacts.get(p);
+ cl = clist.get(column);
+ }
+ return cl;
+ }
+ @Override
+ public double getElementAt(int column, int row)
+ {
+ Float cl = getFloatElementAt(column, row);
+ if (cl!=null)
+ {
+ return cl;
+ }
+ throw(new RuntimeException("Out of Bounds "+column+","+row));
+ }
@Override
public float getMin()
{
{
return "Contact Matrix";
}
- GroupSet grps = new GroupSet();
- @Override
- public GroupSetI getGroupSet()
- {
- return grps;
- }
- @Override
- public void setGroupSet(GroupSet makeGroups)
- {
- grps = makeGroups;
- }
public static String contactToFloatString(ContactMatrixI cm)
{
StringBuilder sb = new StringBuilder();