Merge branch 'master' into lttng-kepler
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.kernel.ui / src / org / eclipse / linuxtools / internal / lttng2 / kernel / ui / views / common / EventIterator.java
index d1acc54c55cb3483b56770af624bd0833f34cde9..35d9d50ca58ecd5cdf53d9297425be0e6fa78e00 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2012 Ericsson\r
- *\r
- * All rights reserved. This program and the accompanying materials are\r
- * made available under the terms of the Eclipse Public License v1.0 which\r
- * accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *   Patrick Tasse - Initial API and implementation\r
- *******************************************************************************/\r
-\r
-package org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.common;\r
-\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.NoSuchElementException;\r
-\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.TimeEvent;\r
-\r
-/**\r
- * An iterator for time events\r
- */\r
-public class EventIterator implements Iterator<ITimeEvent> {\r
-\r
-    private final long fStartTime;\r
-    private final long fEndTime;\r
-    private List<ITimeEvent> fEventList;\r
-    private List<ITimeEvent> fZoomedEventList;\r
-    private long fZoomedStartTime;\r
-    private long fZoomedEndTime;\r
-    private int fIndex = 0;\r
-    private int fZoomedIndex= 0;\r
-    private ITimeEvent fNext = null;\r
-    private ITimeEvent fZoomedNext = null;\r
-\r
-    /**\r
-     * Basic constructor, with start time and end times equal to the lowest and\r
-     * highest values possible, respectively.\r
-     *\r
-     * @param eventList\r
-     *            The list on which this iterator will iterate\r
-     * @param zoomedEventList\r
-     *            The "zoomed" list\r
-     */\r
-    public EventIterator(List<ITimeEvent> eventList, List<ITimeEvent> zoomedEventList) {\r
-        this(eventList, zoomedEventList, Long.MIN_VALUE, Long.MAX_VALUE);\r
-    }\r
-\r
-    /**\r
-     * Complete constructor, where we specify start and end times.\r
-     *\r
-     * @param eventList\r
-     *            The list on which this iterator will iterate\r
-     * @param zoomedEventList\r
-     *            The "zoomed" list\r
-     * @param startTime\r
-     *            The start time\r
-     * @param endTime\r
-     *            The end time\r
-     */\r
-    public EventIterator(List<ITimeEvent> eventList,\r
-            List<ITimeEvent> zoomedEventList, long startTime, long endTime) {\r
-        fEventList = eventList;\r
-        fZoomedEventList = zoomedEventList;\r
-        if (zoomedEventList != null && zoomedEventList.size() > 0) {\r
-            fZoomedStartTime = zoomedEventList.get(0).getTime();\r
-            ITimeEvent lastEvent = zoomedEventList.get(zoomedEventList.size() - 1);\r
-            fZoomedEndTime = lastEvent.getTime() + lastEvent.getDuration();\r
-        } else {\r
-            fZoomedStartTime = Long.MAX_VALUE;\r
-            fZoomedEndTime = Long.MIN_VALUE;\r
-        }\r
-        fStartTime = startTime;\r
-        fEndTime = endTime;\r
-    }\r
-\r
-    @Override\r
-    public boolean hasNext() {\r
-        if (fNext == null && fEventList != null) {\r
-            while (fIndex < fEventList.size()) {\r
-                ITimeEvent event = fEventList.get(fIndex++);\r
-                if (event.getTime() + event.getDuration() >= fStartTime && event.getTime() <= fEndTime) {\r
-                    fNext = event;\r
-                    break;\r
-                }\r
-            }\r
-            if (fNext == null) {\r
-                fEventList = null;\r
-            }\r
-        }\r
-\r
-        if (fZoomedNext == null && fZoomedEventList != null) {\r
-            while (fZoomedIndex < fZoomedEventList.size()) {\r
-                ITimeEvent event = fZoomedEventList.get(fZoomedIndex++);\r
-                if (event.getTime() + event.getDuration() >= fStartTime && event.getTime() <= fEndTime) {\r
-                    fZoomedNext = event;\r
-                    break;\r
-                }\r
-            }\r
-            if (fZoomedNext == null) {\r
-                fZoomedEventList = null;\r
-            }\r
-        }\r
-\r
-        return fNext != null || fZoomedNext != null;\r
-    }\r
-\r
-    @Override\r
-    public ITimeEvent next() {\r
-        if (hasNext()) {\r
-            if (fZoomedNext != null && (fNext == null || fZoomedNext.getTime() <= fNext.getTime())) {\r
-                if (fNext != null && fNext.getTime() == fZoomedNext.getTime()) {\r
-                    long duration = fNext.getTime() + fNext.getDuration() - fZoomedEndTime;\r
-                    if (duration > 0) {\r
-                        fNext = new TimeEvent(fNext.getEntry(), fZoomedEndTime, duration);\r
-                    } else {\r
-                        fNext = null;\r
-                    }\r
-                }\r
-                ITimeEvent event = fZoomedNext;\r
-                fZoomedNext = null;\r
-                return event;\r
-            }\r
-            if (fNext.getTime() < fZoomedEndTime && fNext.getTime() + fNext.getDuration() > fZoomedStartTime) {\r
-                ITimeEvent event = new TimeEvent(fNext.getEntry(), fNext.getTime(), fZoomedStartTime - fNext.getTime());\r
-                long duration = fNext.getTime() + fNext.getDuration() - fZoomedEndTime;\r
-                if (duration > 0) {\r
-                    fNext = new TimeEvent(fNext.getEntry(), fZoomedEndTime, duration);\r
-                } else {\r
-                    fNext = null;\r
-                }\r
-                return event;\r
-            }\r
-            ITimeEvent event = fNext;\r
-            fNext = null;\r
-            return event;\r
-        }\r
-        throw new NoSuchElementException();\r
-    }\r
-\r
-    @Override\r
-    public void remove() {\r
-        throw new UnsupportedOperationException();\r
-    }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2012 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Patrick Tasse - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.common;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent;
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.TimeEvent;
+
+/**
+ * An iterator for time events
+ */
+public class EventIterator implements Iterator<ITimeEvent> {
+
+    private final long fStartTime;
+    private final long fEndTime;
+    private List<ITimeEvent> fEventList;
+    private List<ITimeEvent> fZoomedEventList;
+    private long fZoomedStartTime;
+    private long fZoomedEndTime;
+    private int fIndex = 0;
+    private int fZoomedIndex= 0;
+    private ITimeEvent fNext = null;
+    private ITimeEvent fZoomedNext = null;
+
+    /**
+     * Basic constructor, with start time and end times equal to the lowest and
+     * highest values possible, respectively.
+     *
+     * @param eventList
+     *            The list on which this iterator will iterate
+     * @param zoomedEventList
+     *            The "zoomed" list
+     */
+    public EventIterator(List<ITimeEvent> eventList, List<ITimeEvent> zoomedEventList) {
+        this(eventList, zoomedEventList, Long.MIN_VALUE, Long.MAX_VALUE);
+    }
+
+    /**
+     * Complete constructor, where we specify start and end times.
+     *
+     * @param eventList
+     *            The list on which this iterator will iterate
+     * @param zoomedEventList
+     *            The "zoomed" list
+     * @param startTime
+     *            The start time
+     * @param endTime
+     *            The end time
+     */
+    public EventIterator(List<ITimeEvent> eventList,
+            List<ITimeEvent> zoomedEventList, long startTime, long endTime) {
+        fEventList = eventList;
+        fZoomedEventList = zoomedEventList;
+        if (zoomedEventList != null && zoomedEventList.size() > 0) {
+            fZoomedStartTime = zoomedEventList.get(0).getTime();
+            ITimeEvent lastEvent = zoomedEventList.get(zoomedEventList.size() - 1);
+            fZoomedEndTime = lastEvent.getTime() + lastEvent.getDuration();
+        } else {
+            fZoomedStartTime = Long.MAX_VALUE;
+            fZoomedEndTime = Long.MIN_VALUE;
+        }
+        fStartTime = startTime;
+        fEndTime = endTime;
+    }
+
+    @Override
+    public boolean hasNext() {
+        if (fNext == null && fEventList != null) {
+            while (fIndex < fEventList.size()) {
+                ITimeEvent event = fEventList.get(fIndex++);
+                if (event.getTime() + event.getDuration() >= fStartTime && event.getTime() <= fEndTime) {
+                    fNext = event;
+                    break;
+                }
+            }
+            if (fNext == null) {
+                fEventList = null;
+            }
+        }
+
+        if (fZoomedNext == null && fZoomedEventList != null) {
+            while (fZoomedIndex < fZoomedEventList.size()) {
+                ITimeEvent event = fZoomedEventList.get(fZoomedIndex++);
+                if (event.getTime() + event.getDuration() >= fStartTime && event.getTime() <= fEndTime) {
+                    fZoomedNext = event;
+                    break;
+                }
+            }
+            if (fZoomedNext == null) {
+                fZoomedEventList = null;
+            }
+        }
+
+        return fNext != null || fZoomedNext != null;
+    }
+
+    @Override
+    public ITimeEvent next() {
+        if (hasNext()) {
+            if (fZoomedNext != null && (fNext == null || fZoomedNext.getTime() <= fNext.getTime())) {
+                if (fNext != null && fNext.getTime() == fZoomedNext.getTime()) {
+                    long duration = fNext.getTime() + fNext.getDuration() - fZoomedEndTime;
+                    if (duration > 0) {
+                        fNext = new TimeEvent(fNext.getEntry(), fZoomedEndTime, duration);
+                    } else {
+                        fNext = null;
+                    }
+                }
+                ITimeEvent event = fZoomedNext;
+                fZoomedNext = null;
+                return event;
+            }
+            if (fNext.getTime() < fZoomedEndTime && fNext.getTime() + fNext.getDuration() > fZoomedStartTime) {
+                ITimeEvent event = new TimeEvent(fNext.getEntry(), fNext.getTime(), fZoomedStartTime - fNext.getTime());
+                long duration = fNext.getTime() + fNext.getDuration() - fZoomedEndTime;
+                if (duration > 0) {
+                    fNext = new TimeEvent(fNext.getEntry(), fZoomedEndTime, duration);
+                } else {
+                    fNext = null;
+                }
+                return event;
+            }
+            ITimeEvent event = fNext;
+            fNext = null;
+            return event;
+        }
+        throw new NoSuchElementException();
+    }
+
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+}
This page took 0.033441 seconds and 5 git commands to generate.