View Javadoc

1   /*
2    * Copyright 2001-2004 The Apache Software Foundation
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.commons.cache.remote;
17  
18  import java.io.Serializable;
19  
20  /**
21   * tk.
22   *
23   * @version $Id: CacheStatResponse.java 155435 2005-02-26 13:17:27Z dirkv $
24   * @author Rodney Waldhoff
25   */
26  public class CacheStatResponse implements CacheResponse {
27    protected Long[] _stats = null;
28  
29    public CacheStatResponse(Long stat) {
30      this(new Long[] { stat } );
31    }
32  
33    public CacheStatResponse(Long[] stats) {
34      _stats = stats;
35    }
36  
37    public Long[] getCacheStats() {
38      return _stats;
39    }
40  
41    public boolean equals(CacheStatResponse res) {
42      if(null == res) {
43        return false;
44      } else if(null == res.getCacheStats()) {
45        return (null == _stats);
46      } else if(null == _stats) {
47        return false;
48      } else if(res.getCacheStats().length != _stats.length) {
49        return false;
50      } else {
51        for(int i=0;i<_stats.length;i++) {
52          if(! (_stats[i] == null ? ( null == (res.getCacheStats())[i] ) : _stats[i].equals(res.getCacheStats()[i]) )) {
53            return false;
54          }
55        }
56        return true;
57      }
58    }
59  
60    public int hashCode() {
61      if(null == _stats) {
62        return this.getClass().getName().hashCode();
63      } else {
64        int hc = 0;
65        for(int i=0;i<_stats.length;i++) {
66          try {
67            hc ^= _stats[i].hashCode();
68          } catch(NullPointerException e) {
69            // ignored
70          }
71        }
72        return hc;
73      }
74    }
75  }