comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:89ad0a9cca52
1 package datastructures;
2
3 /**
4 * Used for various purposes.
5 *
6 * @author Ali Abdallah
7 * @version 01.2011
8 * @since jdk 1.6.0
9 */
10 public class Frame {
11
12 // Self explanatory.
13 protected int start;
14 protected int end;
15 protected int length;
16
17 /**
18 * Constructs a frame with start position "start", length "length" and
19 * end position "start+length-1".
20 * @param start the start position of the frame.
21 * @param length the length of the frame.
22 */
23 public Frame(int start, int length) {
24 this.start = start; end = start+length-1;
25 this.length = length;
26 }
27
28 /**
29 * Verify if this frame overlaps the frame specified in the parameter.
30 * @param f the frame which potentially overlaps the calling frame.
31 * @return true if the two frames overlap each other and false otherwise.
32 */
33 public boolean overlaps(Frame f){
34 return (end >= f.start() && start < f.end());
35 }
36
37 /**
38 * Computes the size of the overlap area.
39 * @param f the frame overlapping the calling frame.
40 * @return the size of the overlap if an overlap exists and -1 otherwise.
41 */
42 public int overlapSize(Frame f){
43 if(this.overlaps(f)){
44 int s = Math.max(start, f.start());
45 int e = Math.min(end, f.end());
46 return e-s+1;
47 }
48 return -1;
49 }
50
51 /**
52 * Unify the calling frame with the frame specified in the parameter.
53 * @param f the frame to be unified with the calling frame.
54 * @return the union of the calling frame and f.
55 */
56 public Frame unify(Frame f){
57 return
58 new Frame(Math.min(this.start, f.start),
59 Math.max(this.end,f.end)-Math.min(this.start, f.start)+1);
60 }
61
62 /**
63 * self explanatory
64 * @return start of the frame.
65 */
66 public int start(){
67 return start;
68 }
69
70 /**
71 * self explanatory
72 * @return end of the frame.
73 */
74 public int end(){
75 return end;
76 }
77
78 /**
79 * self explanatory
80 * @return length of the frame.
81 */
82 public int length(){
83 return length;
84 }
85
86 /**
87 * Make a string representation of the frame.
88 * @return a string representation of the string.
89 */
90 public String toString(){
91 return start+":"+end;
92 }
93
94 }