String getAnnotLabel();
/**
- * string indicating how the contactMatrix should be rendered - stored in calcId
- * @return
+ * string indicating how the contactMatrix should be rendered - stored in
+ * calcId
+ *
+ * @return
*/
String getType();
int getWidth();
int getHeight();
-
- default boolean hasGroups() {
- return false;
+ public GroupSetI getGroupSet();
+
+ /// proxy methods to simplify use of the interface
+ /// Mappable contact matrices can override these to perform mapping
+
+ default public boolean hasGroupSet()
+ {
+ return getGroupSet() != null;
+ }
+
+ default boolean hasGroups()
+ {
+ return hasGroupSet() && getGroupSet().hasGroups();
}
- default BitSet getGroupsFor(int column) {
- BitSet colbitset = new BitSet();
- colbitset.set(column);
- return colbitset;
+
+ default BitSet getGroupsFor(int column)
+ {
+ if (!hasGroupSet())
+ {
+ BitSet colbitset = new BitSet();
+ colbitset.set(column);
+ return colbitset;
+ }
+ return getGroupSet().getGroupsFor(column);
}
- default List<BitSet> getGroups() {
- return Arrays.asList();
+ default List<BitSet> getGroups()
+ {
+ if (!hasGroupSet())
+ {
+ return Arrays.asList();
+ }
+ return getGroupSet().getGroups();
}
- default boolean hasTree() {
- return false;
+ default boolean hasTree()
+ {
+ return hasGroupSet() ? getGroupSet().hasTree() : false;
}
/**
* Newick representation of clustered matrix
+ *
* @return null unless hasTree is true
*/
- default String getNewick() {
- return null;
+ default String getNewick()
+ {
+ return hasGroupSet() ? getGroupSet().getNewick() : null;
}
- default String getTreeMethod() {
- return null;
+ default String getTreeMethod()
+ {
+ return hasGroupSet() ? getGroupSet().getTreeMethod() : null;
}
- default boolean hasCutHeight() {
- return false;
+ default boolean hasCutHeight()
+ {
+ return hasGroupSet() ? getGroupSet().hasCutHeight() : false;
}
- default double getCutHeight() {
- return 0;
+ default double getCutHeight()
+ {
+ return hasGroupSet() ? getGroupSet().getCutHeight() : 0;
}
- void updateGroups(List<BitSet> colGroups);
+ default void updateGroups(List<BitSet> colGroups)
+ {
+ if (hasGroupSet())
+ {
+ getGroupSet().updateGroups(colGroups);
+ }
+ }
- void setColorForGroup(BitSet bs, Color color);
+ default void setColorForGroup(BitSet bs, Color color)
+ {
+ if (hasGroupSet())
+ {
+ getGroupSet().setColorForGroup(bs, color);
+ }
+ }
- default Color getColourForGroup(BitSet bs) { return Color.white;}
+ default Color getColourForGroup(BitSet bs)
+ {
+ if (hasGroupSet())
+ {
+ return getGroupSet().getColourForGroup(bs);
+ }
+ else
+ {
+ return Color.white;
+ }
+ }
+ void setGroupSet(GroupSet makeGroups);
}