1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Francois Chouinard - Initial API and implementation
11 * Patrick Tasse - Modified from TmfSimpleTimestamp to use nanosecond scale
12 *******************************************************************************/
14 package org
.eclipse
.tracecompass
.tmf
.core
.timestamp
;
17 * A simplified timestamp where scale is nanoseconds and precision is set to 0.
19 public final class TmfNanoTimestamp
extends TmfTimestamp
{
21 private final long fValue
;
23 // ------------------------------------------------------------------------
25 // ------------------------------------------------------------------------
28 * Default constructor (value = 0)
30 public TmfNanoTimestamp() {
40 public TmfNanoTimestamp(final long value
) {
45 public long getValue() {
51 public int getScale() {
52 return ITmfTimestamp
.NANOSECOND_SCALE
;
55 // ------------------------------------------------------------------------
57 // ------------------------------------------------------------------------
60 public ITmfTimestamp
normalize(final long offset
, final int scale
) {
61 if (scale
== ITmfTimestamp
.NANOSECOND_SCALE
) {
62 return new TmfNanoTimestamp(saturatedAdd(getValue(), offset
));
64 return super.normalize(offset
, scale
);
68 public int compareTo(final ITmfTimestamp ts
) {
69 if (ts
instanceof TmfNanoTimestamp
) {
70 final long delta
= getValue() - ts
.getValue();
71 return (delta
== 0) ?
0 : (delta
> 0) ?
1 : -1;
73 return super.compareTo(ts
);
77 public ITmfTimestamp
getDelta(final ITmfTimestamp ts
) {
78 if (ts
instanceof TmfNanoTimestamp
) {
79 return new TmfTimestampDelta(getValue() - ts
.getValue(), ITmfTimestamp
.NANOSECOND_SCALE
);
81 return super.getDelta(ts
);
88 public long toNanos() {
92 // ------------------------------------------------------------------------
94 // ------------------------------------------------------------------------
97 public int hashCode() {
98 return super.hashCode();
102 public boolean equals(final Object other
) {
109 if (!(other
instanceof TmfNanoTimestamp
)) {
110 return super.equals(other
);
112 final TmfNanoTimestamp ts
= (TmfNanoTimestamp
) other
;
114 return compareTo(ts
) == 0;
This page took 0.043879 seconds and 6 git commands to generate.