Added convenience functions for RefHanger
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@585 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
7ed496b859
commit
fd496159a8
|
|
@ -85,7 +85,8 @@ public class RefHanger<T> {
|
|||
}
|
||||
|
||||
protected int getRightOffset() {
|
||||
return hangers.size() - 1;
|
||||
//return hangers.size() - 1;
|
||||
return isEmpty() ? 0 : hangers.size() - 1;
|
||||
}
|
||||
|
||||
protected int getOffset(GenomeLoc loc) {
|
||||
|
|
@ -101,6 +102,10 @@ public class RefHanger<T> {
|
|||
return hangers.get(getRightOffset()).loc;
|
||||
}
|
||||
|
||||
public GenomeLoc getLoc(int i) {
|
||||
return hangers.get(i).loc;
|
||||
}
|
||||
|
||||
public boolean hasLocation(GenomeLoc loc) {
|
||||
return !isEmpty() && loc.isBetween(getLeftLoc(), getRightLoc());
|
||||
}
|
||||
|
|
@ -160,6 +165,14 @@ public class RefHanger<T> {
|
|||
return hangers.size();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder s = new StringBuilder();
|
||||
for ( int i = 0; i < size(); i++) {
|
||||
s.append(String.format("%s => %s%n", getLoc(i), Utils.join(",", getHanger(i).data)));
|
||||
}
|
||||
return s.toString();
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Adding data to the left and right
|
||||
|
|
@ -178,6 +191,10 @@ public class RefHanger<T> {
|
|||
hangers.add(0, new Hanger(pos, data));
|
||||
}
|
||||
|
||||
public void pushLeft(GenomeLoc pos, List<T> data) {
|
||||
hangers.add(0, new Hanger(pos, new ArrayList<T>(data)));
|
||||
}
|
||||
|
||||
public void pushRight(GenomeLoc pos) {
|
||||
pushRight(pos, new ArrayList<T>());
|
||||
}
|
||||
|
|
@ -213,6 +230,17 @@ public class RefHanger<T> {
|
|||
}
|
||||
}
|
||||
|
||||
public void addDataList(List<GenomeLoc> positions, List<List<T>> dataByPos) {
|
||||
assert (positions.size() == dataByPos.size());
|
||||
|
||||
for (int i = 0; i < positions.size(); i++) {
|
||||
GenomeLoc pos = positions.get(i);
|
||||
for ( T datum : dataByPos.get(i) ) {
|
||||
expandingPut1(pos, datum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void expandingPut1(final GenomeLoc loc, T datum) {
|
||||
ensurePos(loc);
|
||||
extendData(loc, datum);
|
||||
|
|
|
|||
Loading…
Reference in New Issue