Mercurial > repos > pfrommolt > ngsrich
view NGSrich_0.5.5/src/datastructures/Frame.java @ 0:89ad0a9cca52 default tip
Uploaded
author | pfrommolt |
---|---|
date | Mon, 21 Nov 2011 08:12:19 -0500 |
parents | |
children |
line wrap: on
line source
package datastructures; /** * Used for various purposes. * * @author Ali Abdallah * @version 01.2011 * @since jdk 1.6.0 */ public class Frame { // Self explanatory. protected int start; protected int end; protected int length; /** * Constructs a frame with start position "start", length "length" and * end position "start+length-1". * @param start the start position of the frame. * @param length the length of the frame. */ public Frame(int start, int length) { this.start = start; end = start+length-1; this.length = length; } /** * Verify if this frame overlaps the frame specified in the parameter. * @param f the frame which potentially overlaps the calling frame. * @return true if the two frames overlap each other and false otherwise. */ public boolean overlaps(Frame f){ return (end >= f.start() && start < f.end()); } /** * Computes the size of the overlap area. * @param f the frame overlapping the calling frame. * @return the size of the overlap if an overlap exists and -1 otherwise. */ public int overlapSize(Frame f){ if(this.overlaps(f)){ int s = Math.max(start, f.start()); int e = Math.min(end, f.end()); return e-s+1; } return -1; } /** * Unify the calling frame with the frame specified in the parameter. * @param f the frame to be unified with the calling frame. * @return the union of the calling frame and f. */ public Frame unify(Frame f){ return new Frame(Math.min(this.start, f.start), Math.max(this.end,f.end)-Math.min(this.start, f.start)+1); } /** * self explanatory * @return start of the frame. */ public int start(){ return start; } /** * self explanatory * @return end of the frame. */ public int end(){ return end; } /** * self explanatory * @return length of the frame. */ public int length(){ return length; } /** * Make a string representation of the frame. * @return a string representation of the string. */ public String toString(){ return start+":"+end; } }