View Javadoc

1   // Copyright (C) 2008 - 2012 Philip Aston
2   // All rights reserved.
3   //
4   // This file is part of The Grinder software distribution. Refer to
5   // the file LICENSE which is part of The Grinder distribution for
6   // licensing details. The Grinder distribution is available on the
7   // Internet at http://grinder.sourceforge.net/
8   //
9   // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12  // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13  // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14  // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16  // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18  // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20  // OF THE POSSIBILITY OF SUCH DAMAGE.
21  
22  package net.grinder.console.common.processidentity;
23  
24  import net.grinder.common.processidentity.WorkerIdentity;
25  import net.grinder.common.processidentity.WorkerProcessReport;
26  import net.grinder.messages.console.WorkerAddress;
27  
28  
29  public final class StubWorkerProcessReport
30    implements WorkerProcessReport {
31  
32    private final State m_state;
33    private final short m_totalNumberOfThreads;
34    private final short m_numberOfRunningThreads;
35    private final WorkerAddress m_workerAddress;
36  
37    public StubWorkerProcessReport(WorkerIdentity workerIdentity,
38                                   State finished,
39                                   int runningThreads,
40                                   int totalThreads) {
41      m_workerAddress = new WorkerAddress(workerIdentity);
42      m_state = finished;
43      m_numberOfRunningThreads = (short)runningThreads;
44      m_totalNumberOfThreads = (short)totalThreads;
45    }
46  
47    public WorkerAddress getProcessAddress() {
48      return m_workerAddress;
49    }
50  
51    public WorkerIdentity getWorkerIdentity() {
52      return m_workerAddress.getIdentity();
53    }
54  
55    public State getState() {
56      return m_state;
57    }
58  
59    public short getNumberOfRunningThreads() {
60      return m_numberOfRunningThreads;
61    }
62  
63    public short getMaximumNumberOfThreads() {
64      return m_totalNumberOfThreads;
65    }
66  
67    public int hashCode() {
68      return m_workerAddress.hashCode();
69    }
70  
71    public boolean equals(Object o) {
72      if (o == this) {
73        return true;
74      }
75  
76      if (!(o instanceof WorkerProcessReport)) {
77        return false;
78      }
79  
80      final WorkerProcessReport other = (WorkerProcessReport)o;
81  
82      return
83        this.getState() == other.getState() &&
84        this.getNumberOfRunningThreads() == other.getNumberOfRunningThreads() &&
85        this.getMaximumNumberOfThreads() == other.getMaximumNumberOfThreads() &&
86        this.getWorkerIdentity().equals(other.getWorkerIdentity());
87    }
88  
89    public String toString() {
90      return
91        "StubWorkerProcessReport(" +
92        getWorkerIdentity() + ", " +
93        getState() + ", " +
94        getNumberOfRunningThreads() + ", " +
95        getMaximumNumberOfThreads() + ")";
96    }
97  }