1 package org.opentrafficsim.core.egtf;
2
3 import java.util.EventObject;
4
5 /**
6 * EGTF event with progress and the ability to interrupt calculations.
7 * <p>
8 * Copyright (c) 2013-2023 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
9 * BSD-style license. See <a href="https://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
10 * </p>
11 * @author <a href="https://dittlab.tudelft.nl">Wouter Schakel</a>
12 */
13 public class EgtfEvent extends EventObject
14 {
15
16 /** */
17 private static final long serialVersionUID = 20181008L;
18
19 /** Progress, a value in the range [0 ... 1]. */
20 private final double progress;
21
22 /**
23 * Constructor.
24 * @param egtf EGTF; egtf
25 * @param progress double; progress, a value in the range [0 ... 1]
26 */
27 EgtfEvent(final Egtf egtf, final double progress)
28 {
29 super(egtf);
30 this.progress = progress;
31 }
32
33 /**
34 * Returns the progress, a value in the range [0 ... 1].
35 * @return double; progress, a value in the range [0 ... 1]
36 */
37 public final double getProgress()
38 {
39 return this.progress;
40 }
41
42 /**
43 * Interrupts the filter. If a {@code filter()} calculation is ongoing, it will stop and return {@code null}.
44 */
45 public final void interrupt()
46 {
47 ((Egtf) getSource()).interrupt();
48 }
49
50 /** {@inheritDoc} */
51 @Override
52 public String toString()
53 {
54 return "EgtfEvent [progress=" + this.progress + "]";
55 }
56
57 }