Rename xxx.lttng to xxx.lttng.core
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.core / src / org / eclipse / linuxtools / lttng / event / LttngLocation.java
1 package org.eclipse.linuxtools.lttng.event;
2
3 import org.eclipse.linuxtools.tmf.trace.ITmfLocation;
4
5
6 public class LttngLocation implements ITmfLocation<LttngTimestamp>, Comparable<LttngLocation> {
7
8 private final static long DEFAULT_CURR_TIME = 0L;
9
10 private boolean isLastOperationParse = false ;
11 private boolean isLastOperationReadNext = false;
12 private boolean isLastOperationSeek = false;
13
14 private LttngTimestamp operationTime = null;
15
16 public LttngLocation() {
17 this( DEFAULT_CURR_TIME );
18 }
19
20 public LttngLocation(long newCurrentTimestampValue) {
21 isLastOperationParse = false;
22 isLastOperationReadNext = false;
23 isLastOperationSeek = false;
24 operationTime = new LttngTimestamp(newCurrentTimestampValue);
25 }
26
27 public LttngLocation(LttngTimestamp newCurrentTimestamp) {
28 isLastOperationParse = false;
29 isLastOperationReadNext = false;
30 isLastOperationSeek = false;
31 operationTime = new LttngTimestamp(newCurrentTimestamp);
32 }
33
34
35 public LttngLocation(LttngLocation oldLocation) {
36 this.isLastOperationParse = oldLocation.isLastOperationParse;
37 this.isLastOperationReadNext = oldLocation.isLastOperationReadNext;
38 this.isLastOperationSeek = oldLocation.isLastOperationSeek;
39 this.operationTime = oldLocation.operationTime;
40 }
41
42 @Override
43 public LttngLocation clone() {
44
45 LttngLocation newLocation = null;
46
47 try {
48 newLocation = (LttngLocation)super.clone();
49
50 // *** IMPORTANT ***
51 // Basic type in java are immutable!
52 // Thus, using assignation ("=") on basic type is VALID.
53 newLocation.isLastOperationParse = this.isLastOperationParse;
54 newLocation.isLastOperationReadNext = this.isLastOperationReadNext;
55 newLocation.isLastOperationSeek = this.isLastOperationSeek;
56
57 // For other type, we need to create a new timestamp
58 newLocation.operationTime = new LttngTimestamp( this.operationTime );
59 }
60 catch (CloneNotSupportedException e) {
61 System.out.println("Cloning failed with : " + e.getMessage()); //$NON-NLS-1$
62 }
63
64 return newLocation;
65 }
66
67 public LttngTimestamp getOperationTime() {
68 return operationTime;
69 }
70
71 public long getOperationTimeValue() {
72 return operationTime.getValue();
73 }
74
75 public void setOperationTime(LttngTimestamp newOperationTime) {
76 this.operationTime.setValue(newOperationTime.getValue());
77 }
78
79 public void setOperationTime(Long newOperationTimeValue) {
80 this.operationTime.setValue(newOperationTimeValue);
81 }
82
83
84 public void setLastOperationParse() {
85 isLastOperationParse = true;
86 isLastOperationReadNext = false;
87 isLastOperationSeek = false;
88 }
89
90 public boolean isLastOperationParse() {
91 return isLastOperationParse;
92 }
93
94
95 public void setLastOperationReadNext() {
96 isLastOperationParse = false;
97 isLastOperationReadNext = true;
98 isLastOperationSeek = false;
99 }
100
101 public boolean isLastOperationReadNext() {
102 return isLastOperationReadNext;
103 }
104
105
106 public void setLastOperationSeek() {
107 isLastOperationParse = false;
108 isLastOperationReadNext = false;
109 isLastOperationSeek = true;
110 }
111
112 public boolean isLastOperationSeek() {
113 return isLastOperationSeek;
114 }
115
116 public void resetLocationState() {
117 isLastOperationParse = false;
118 isLastOperationReadNext = false;
119 isLastOperationSeek = false;
120 }
121
122 // ------------------------------------------------------------------------
123 // Object
124 // ------------------------------------------------------------------------
125
126 @Override
127 public boolean equals(Object other) {
128 if (!(other instanceof LttngLocation)) {
129 return false;
130 }
131 LttngLocation o = (LttngLocation) other;
132 return (operationTime.equals(o.operationTime)) && (isLastOperationParse == o.isLastOperationParse) &&
133 (isLastOperationReadNext == o.isLastOperationReadNext) && (isLastOperationSeek == o.isLastOperationSeek);
134 }
135
136 @Override
137 public String toString() {
138 // return "\tLttngLocation[ P/R/S : " + isLastOperationParse + "/" + isLastOperationReadNext + "/" + isLastOperationSeek + " Current : " + operationTime + " ]";
139 return operationTime.toString();
140 }
141
142 // ------------------------------------------------------------------------
143 // ITmfLocation
144 // ------------------------------------------------------------------------
145
146 @Override
147 public void setLocation(LttngTimestamp location) {
148 operationTime = (LttngTimestamp)location;
149 }
150
151 @Override
152 public LttngTimestamp getLocation() {
153 return new LttngTimestamp ( operationTime );
154 }
155
156 @Override
157 public int compareTo(LttngLocation o) {
158 return operationTime.compareTo(o.operationTime);
159 }
160
161 }
This page took 0.034018 seconds and 5 git commands to generate.