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: ObjectArrayResponse.java 155435 2005-02-26 13:17:27Z dirkv $
24   * @author Rodney Waldhoff
25   */
26  public class ObjectArrayResponse implements CacheResponse {
27    protected Serializable[] _sers = null;
28  
29    public ObjectArrayResponse(Serializable[] sers) {
30      _sers = sers;
31    }
32  
33    public Serializable[] getArray() {
34      return _sers;
35    }
36  
37    public Serializable getObject(int i) {
38      return _sers[i];
39    }
40  
41    public int getLength() {
42      return _sers.length;
43    }
44  
45    public boolean equals(ObjectArrayResponse res) {
46      if(null == res) {
47        return false;
48      } else if(null == res.getArray()) {
49        return (null == _sers);
50      } else if(null == _sers) {
51        return false;
52      } else if(_sers.length != res.getLength()) {
53        return false;
54      } else {
55        for(int i=0;i<_sers.length;i++) {
56          if(! (_sers[i] == null ? ( null == res.getObject(i) ) : _sers[i].equals(res.getObject(i)) ) ) {
57            return false;
58          }
59        }
60        return true;
61      }
62    }
63  
64    public int hashCode() {
65      if(null == _sers) {
66        return this.getClass().getName().hashCode();
67      } else {
68        int hc = 0;
69        for(int i=0;i<_sers.length;i++) {
70          try {
71            hc ^= _sers[i].hashCode();
72          } catch(NullPointerException e) {
73            // ignored
74          }
75        }
76        return hc;
77      }
78    }
79  }