View Javadoc

1   // Copyright (C) 2008 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.messages.agent;
23  
24  import net.grinder.messages.agent.CacheHighWaterMark;
25  
26  
27  /**
28   * Stub implementation of {@link CacheHighWaterMark}.
29   *
30   * @author Philip Aston
31   */
32  public class StubCacheHighWaterMark implements CacheHighWaterMark {
33    private final String m_cacheID;
34    private final long m_time;
35  
36    public StubCacheHighWaterMark(String cacheID, long height) {
37      m_cacheID = cacheID;
38      m_time = height;
39    }
40  
41    public boolean isLater(CacheHighWaterMark other) {
42      return m_time >= ((StubCacheHighWaterMark)other).m_time;
43    }
44  
45    public int hashCode() {
46      return (int)m_time;
47    }
48  
49    public boolean equals(Object o) {
50      if (o == this) {
51        return true;
52      }
53  
54      if (o == null || o.getClass() != getClass()) {
55        return false;
56      }
57  
58      return m_time == ((StubCacheHighWaterMark)o).m_time;
59    }
60  
61    public long getTime() {
62      return m_time;
63    }
64  
65    public boolean isForSameCache(CacheHighWaterMark other) {
66      return other != null &&
67             other instanceof StubCacheHighWaterMark &&
68             m_cacheID.equals(((StubCacheHighWaterMark)other).m_cacheID);
69    }
70  }