32fab5fb18f5ee78da37213fc6fa2a1277088550
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.ui.tests / src / org / eclipse / tracecompass / tmf / ui / tests / views / uml2sd / loader / Uml2SDSignalValidator.java
1 /*******************************************************************************
2 * Copyright (c) 2011, 2014 Ericsson
3 *
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
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 * Patrick Tasse - Support selection range
12 *******************************************************************************/
13 package org.eclipse.tracecompass.tmf.ui.tests.views.uml2sd.loader;
14
15 import org.eclipse.tracecompass.tmf.core.component.TmfComponent;
16 import org.eclipse.tracecompass.tmf.core.signal.TmfEndSynchSignal;
17 import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
18 import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
19 import org.eclipse.tracecompass.tmf.core.signal.TmfStartSynchSignal;
20 import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
21 import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
22 import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
23
24 /**
25 * Class to implement that certain signals are sent as well as are sent with correct content.
26 *
27 * @author Bernd Hufmann
28 */
29 public class Uml2SDSignalValidator extends TmfComponent implements IUml2SdSignalValidator {
30
31 // ------------------------------------------------------------------------
32 // Attributes
33 // ------------------------------------------------------------------------
34 private int fSignalDepth = 0;
35 private boolean fIsSignalReceived = false;
36 private boolean fIsSignalError = false;
37 private boolean fIsSourceError = false;
38 private boolean fIsCurrentTimeError = false;
39 private boolean fIsRangeError = false;
40
41 private Object fSource = null;
42 private TmfTimestamp fCurrentTimestamp = null;
43 private TmfTimeRange fCurrentTimeRange = null;
44
45 // ------------------------------------------------------------------------
46 // Constructor
47 // ------------------------------------------------------------------------
48 /**
49 * Constructor
50 */
51 public Uml2SDSignalValidator() {
52 }
53
54 // ------------------------------------------------------------------------
55 // Operations
56 // ------------------------------------------------------------------------
57 /**
58 * Signal handler for time synch signal.
59 * @param signal the signal to handle.
60 */
61 @TmfSignalHandler
62 public void synchToTime(TmfSelectionRangeUpdatedSignal signal) {
63 // Set results so that it can be validated in the test case
64 setSignalReceived(true);
65 setSourceError(getSource() != signal.getSource());
66 setCurrentTimeError(!getCurrentTime().equals(signal.getBeginTime()));
67 }
68
69 /**
70 * Signal handler for window range signal.
71 * @param signal the signal to handle.
72 */
73 @TmfSignalHandler
74 public void synchToTimeRange(TmfWindowRangeUpdatedSignal signal) {
75 // Set results so that it can be validated in the test case
76 setSignalReceived(true);
77 if (getSource() != null) {
78 setSourceError(getSource() != signal.getSource());
79 }
80 if (getCurrentRange() != null) {
81 setRangeError(!getCurrentRange().equals(signal.getCurrentRange()));
82 }
83 }
84
85 /**
86 * Signal handler for handling start synch signal.
87 * @param signal the signal to handle.
88 */
89 @TmfSignalHandler
90 public void startSynch(TmfStartSynchSignal signal) {
91 fSignalDepth++;
92 // make sure that the signal which is send by the loader class is not handled by the loader class
93 // after receiving it. i.e. it must not trigger a another signal
94
95 // Set results so that it can be validated in the test case
96 setSignalError(fSignalDepth > 1);
97 }
98
99 /**
100 * Signal handler for handling end synch signal.
101 * @param signal the signal to handle.
102 */
103 @TmfSignalHandler
104 public void endSynch(TmfEndSynchSignal signal) {
105 fSignalDepth = fSignalDepth > 0 ? fSignalDepth - 1 : 0;
106 }
107
108 @Override
109 public boolean isSignalReceived() {
110 return fIsSignalReceived;
111 }
112
113 @Override
114 public void setSignalReceived(boolean received) {
115 fIsSignalReceived = received;
116 }
117
118 @Override
119 public boolean isSourceError() {
120 return fIsSourceError;
121 }
122
123 @Override
124 public void setSourceError(boolean fIsSourceError) {
125 this.fIsSourceError = fIsSourceError;
126 }
127
128 @Override
129 public boolean isCurrentTimeError() {
130 return fIsCurrentTimeError;
131 }
132
133 @Override
134 public void setCurrentTimeError(boolean fIsCurrentTimeError) {
135 this.fIsCurrentTimeError = fIsCurrentTimeError;
136 }
137
138 @Override
139 public boolean isRangeError() {
140 return fIsRangeError;
141 }
142
143 @Override
144 public void setRangeError(boolean fIsRangeError) {
145 this.fIsRangeError = fIsRangeError;
146 }
147
148 @Override
149 public boolean isSignalError() {
150 return fIsSignalError;
151 }
152
153 @Override
154 public void setSignalError(boolean fIsSignalError) {
155 this.fIsSignalError = fIsSignalError;
156 }
157
158 @Override
159 public Object getSource() {
160 return fSource;
161 }
162
163 @Override
164 public void setSource(Object source) {
165 fSource = source;
166 }
167
168 @Override
169 public TmfTimestamp getCurrentTime() {
170 return fCurrentTimestamp;
171 }
172
173 @Override
174 public void setCurrentTime(TmfTimestamp currentTime) {
175 fCurrentTimestamp = currentTime == null ? null : new TmfTimestamp(currentTime);
176 }
177
178 @Override
179 public TmfTimeRange getCurrentRange() {
180 return fCurrentTimeRange;
181 }
182
183 @Override
184 public void setCurrentRange(TmfTimeRange currentRange) {
185 fCurrentTimeRange = currentRange == null ? null : currentRange;
186 }
187 }
188
This page took 0.037101 seconds and 4 git commands to generate.