Commit | Line | Data |
---|---|---|
73005152 | 1 | /******************************************************************************* |
ed902a2b | 2 | * Copyright (c) 2011, 2014 Ericsson |
abbdd66a | 3 | * |
73005152 BH |
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 | |
abbdd66a | 8 | * |
73005152 BH |
9 | * Contributors: |
10 | * Bernd Hufmann - Initial API and implementation | |
0fcf3b09 | 11 | * Patrick Tasse - Support selection range |
73005152 | 12 | *******************************************************************************/ |
2bdf0193 | 13 | package org.eclipse.tracecompass.tmf.ui.tests.views.uml2sd.loader; |
73005152 | 14 | |
2bdf0193 AM |
15 | import org.eclipse.tracecompass.tmf.core.component.TmfComponent; |
16 | import org.eclipse.tracecompass.tmf.core.signal.TmfEndSynchSignal; | |
b2c971ec | 17 | import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal; |
2bdf0193 AM |
18 | import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler; |
19 | import org.eclipse.tracecompass.tmf.core.signal.TmfStartSynchSignal; | |
b2c971ec MK |
20 | import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal; |
21 | import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp; | |
2bdf0193 | 22 | import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange; |
73005152 BH |
23 | |
24 | /** | |
abbdd66a | 25 | * Class to implement that certain signals are sent as well as are sent with correct content. |
64636df8 BH |
26 | * |
27 | * @author Bernd Hufmann | |
73005152 BH |
28 | */ |
29 | public class Uml2SDSignalValidator extends TmfComponent implements IUml2SdSignalValidator { | |
abbdd66a | 30 | |
73005152 BH |
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; | |
b2c971ec | 42 | private ITmfTimestamp fCurrentTimestamp = null; |
73005152 BH |
43 | private TmfTimeRange fCurrentTimeRange = null; |
44 | ||
45 | // ------------------------------------------------------------------------ | |
46 | // Constructor | |
47 | // ------------------------------------------------------------------------ | |
64636df8 BH |
48 | /** |
49 | * Constructor | |
50 | */ | |
73005152 BH |
51 | public Uml2SDSignalValidator() { |
52 | } | |
abbdd66a | 53 | |
73005152 BH |
54 | // ------------------------------------------------------------------------ |
55 | // Operations | |
56 | // ------------------------------------------------------------------------ | |
64636df8 BH |
57 | /** |
58 | * Signal handler for time synch signal. | |
59 | * @param signal the signal to handle. | |
60 | */ | |
73005152 | 61 | @TmfSignalHandler |
97c71024 | 62 | public void synchToTime(TmfSelectionRangeUpdatedSignal signal) { |
abbdd66a | 63 | // Set results so that it can be validated in the test case |
73005152 BH |
64 | setSignalReceived(true); |
65 | setSourceError(getSource() != signal.getSource()); | |
0fcf3b09 | 66 | setCurrentTimeError(!getCurrentTime().equals(signal.getBeginTime())); |
73005152 BH |
67 | } |
68 | ||
64636df8 | 69 | /** |
97c71024 | 70 | * Signal handler for window range signal. |
64636df8 BH |
71 | * @param signal the signal to handle. |
72 | */ | |
73005152 | 73 | @TmfSignalHandler |
97c71024 | 74 | public void synchToTimeRange(TmfWindowRangeUpdatedSignal signal) { |
abbdd66a | 75 | // Set results so that it can be validated in the test case |
73005152 | 76 | setSignalReceived(true); |
f5944f9f BH |
77 | if (getSource() != null) { |
78 | setSourceError(getSource() != signal.getSource()); | |
79 | } | |
f5944f9f BH |
80 | if (getCurrentRange() != null) { |
81 | setRangeError(!getCurrentRange().equals(signal.getCurrentRange())); | |
82 | } | |
73005152 | 83 | } |
abbdd66a | 84 | |
64636df8 BH |
85 | /** |
86 | * Signal handler for handling start synch signal. | |
87 | * @param signal the signal to handle. | |
88 | */ | |
73005152 BH |
89 | @TmfSignalHandler |
90 | public void startSynch(TmfStartSynchSignal signal) { | |
91 | fSignalDepth++; | |
abbdd66a | 92 | // make sure that the signal which is send by the loader class is not handled by the loader class |
73005152 | 93 | // after receiving it. i.e. it must not trigger a another signal |
abbdd66a | 94 | |
73005152 BH |
95 | // Set results so that it can be validated in the test case |
96 | setSignalError(fSignalDepth > 1); | |
97 | } | |
98 | ||
64636df8 BH |
99 | /** |
100 | * Signal handler for handling end synch signal. | |
101 | * @param signal the signal to handle. | |
102 | */ | |
73005152 BH |
103 | @TmfSignalHandler |
104 | public void endSynch(TmfEndSynchSignal signal) { | |
105 | fSignalDepth = fSignalDepth > 0 ? fSignalDepth - 1 : 0; | |
106 | } | |
abbdd66a | 107 | |
73005152 BH |
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; | |
abbdd66a AM |
151 | } |
152 | ||
73005152 BH |
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 | } | |
abbdd66a | 167 | |
73005152 | 168 | @Override |
b2c971ec | 169 | public ITmfTimestamp getCurrentTime() { |
73005152 BH |
170 | return fCurrentTimestamp; |
171 | } | |
172 | ||
173 | @Override | |
b2c971ec MK |
174 | public void setCurrentTime(ITmfTimestamp currentTime) { |
175 | fCurrentTimestamp = currentTime; | |
73005152 BH |
176 | } |
177 | ||
178 | @Override | |
179 | public TmfTimeRange getCurrentRange() { | |
180 | return fCurrentTimeRange; | |
181 | } | |
182 | ||
183 | @Override | |
184 | public void setCurrentRange(TmfTimeRange currentRange) { | |
b8e2854f | 185 | fCurrentTimeRange = currentRange == null ? null : currentRange; |
73005152 | 186 | } |
abbdd66a | 187 | } |
73005152 | 188 |