1 /*******************************************************************************
2 * Copyright (c) 2011, 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 * Bernd Hufmann - Initial API and implementation
11 * Patrick Tasse - Support selection range
12 *******************************************************************************/
13 package org
.eclipse
.tracecompass
.tmf
.ui
.tests
.views
.uml2sd
.loader
;
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
;
25 * Class to implement that certain signals are sent as well as are sent with correct content.
27 * @author Bernd Hufmann
29 public class Uml2SDSignalValidator
extends TmfComponent
implements IUml2SdSignalValidator
{
31 // ------------------------------------------------------------------------
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;
41 private Object fSource
= null;
42 private TmfTimestamp fCurrentTimestamp
= null;
43 private TmfTimeRange fCurrentTimeRange
= null;
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
51 public Uml2SDSignalValidator() {
54 // ------------------------------------------------------------------------
56 // ------------------------------------------------------------------------
58 * Signal handler for time synch signal.
59 * @param signal the signal to handle.
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()));
70 * Signal handler for window range signal.
71 * @param signal the signal to handle.
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());
80 if (getCurrentRange() != null) {
81 setRangeError(!getCurrentRange().equals(signal
.getCurrentRange()));
86 * Signal handler for handling start synch signal.
87 * @param signal the signal to handle.
90 public void startSynch(TmfStartSynchSignal signal
) {
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
95 // Set results so that it can be validated in the test case
96 setSignalError(fSignalDepth
> 1);
100 * Signal handler for handling end synch signal.
101 * @param signal the signal to handle.
104 public void endSynch(TmfEndSynchSignal signal
) {
105 fSignalDepth
= fSignalDepth
> 0 ? fSignalDepth
- 1 : 0;
109 public boolean isSignalReceived() {
110 return fIsSignalReceived
;
114 public void setSignalReceived(boolean received
) {
115 fIsSignalReceived
= received
;
119 public boolean isSourceError() {
120 return fIsSourceError
;
124 public void setSourceError(boolean fIsSourceError
) {
125 this.fIsSourceError
= fIsSourceError
;
129 public boolean isCurrentTimeError() {
130 return fIsCurrentTimeError
;
134 public void setCurrentTimeError(boolean fIsCurrentTimeError
) {
135 this.fIsCurrentTimeError
= fIsCurrentTimeError
;
139 public boolean isRangeError() {
140 return fIsRangeError
;
144 public void setRangeError(boolean fIsRangeError
) {
145 this.fIsRangeError
= fIsRangeError
;
149 public boolean isSignalError() {
150 return fIsSignalError
;
154 public void setSignalError(boolean fIsSignalError
) {
155 this.fIsSignalError
= fIsSignalError
;
159 public Object
getSource() {
164 public void setSource(Object source
) {
169 public TmfTimestamp
getCurrentTime() {
170 return fCurrentTimestamp
;
174 public void setCurrentTime(TmfTimestamp currentTime
) {
175 fCurrentTimestamp
= currentTime
== null ?
null : new TmfTimestamp(currentTime
);
179 public TmfTimeRange
getCurrentRange() {
180 return fCurrentTimeRange
;
184 public void setCurrentRange(TmfTimeRange currentRange
) {
185 fCurrentTimeRange
= currentRange
== null ?
null : currentRange
;