View Javadoc

1   /**
2    * Copyright (c) 2012, University of Konstanz, Distributed Systems Group
3    * All rights reserved.
4    * 
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    * * Redistributions of source code must retain the above copyright
8    * notice, this list of conditions and the following disclaimer.
9    * * Redistributions in binary form must reproduce the above copyright
10   * notice, this list of conditions and the following disclaimer in the
11   * documentation and/or other materials provided with the distribution.
12   * * Neither the name of the University of Konstanz nor the
13   * names of its contributors may be used to endorse or promote products
14   * derived from this software without specific prior written permission.
15   * 
16   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19   * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
20   * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26   */
27  package org.perfidix.socketadapter;
28  
29  import java.util.Map;
30  
31  import org.perfidix.exceptions.SocketViewException;
32  
33  /**
34   * This interface specifies the methods which have to update the eclipse view
35   * when a given event occurs.
36   * 
37   * @author Lewandowski Lukas, University of Konstanz
38   */
39  public interface IBenchRunSessionListener {
40      /**
41       * The initTotalBenchProgress initializes the progress bar in the eclipse
42       * view. This param represent the sum value of all runs to be executed.
43       * 
44       * @param elems
45       *            This param is an HashMap which consists of each java element
46       *            name with its total bench runs value.
47       * @throws SocketViewException
48       *             if init fails
49       */
50      void initTotalBenchProgress(final Map<String, Integer> elems) throws SocketViewException;
51  
52      /**
53       * The updateCurrentRun method notifies the view which element is currently
54       * running.
55       * 
56       * @param currentElement
57       *            This {@link String} param represents the current running java
58       *            element.
59       * @throws SocketViewException
60       *             if update fails
61       */
62      void updateCurrentRun(final String currentElement) throws SocketViewException;
63  
64      /**
65       * The updateError method updates the view that an error occurred while
66       * benching the given java element.
67       * 
68       * @param element
69       *            This {@link String} param represents the element name of the
70       *            benched object where the error occurred.
71       * @param exception
72       *            The exception caused by the element.
73       * @throws SocketViewException
74       *             if update fails
75       */
76      void updateError(final String element, final String exception) throws SocketViewException;
77  
78      /**
79       * This method notifies the view that all bench runs completed.
80       * 
81       * @throws SocketViewException
82       *             if finish-update fails
83       */
84      boolean finishedBenchRuns() throws SocketViewException;
85  
86  }