001 package org.shiftone.jrat.util.jmx.dynamic;
002
003
004 import java.util.Arrays;
005
006
007 /**
008 * @author jeff@shiftone.org (Jeff Drost)
009 */
010 class OperationKey {
011
012 private String name;
013 private String[] signature;
014 private int hashCode;
015
016 public OperationKey(String action, String[] signature) {
017
018 this.name = action;
019 this.signature = signature;
020 this.hashCode = name.hashCode();
021
022 for (int i = 0; i < signature.length; i++) {
023 hashCode += signature[i].hashCode();
024 }
025 }
026
027
028 public String getName() {
029 return name;
030 }
031
032
033 public String[] getSignature() {
034 return signature;
035 }
036
037
038 public boolean equals(Object o) {
039
040 if (this == o) {
041 return true;
042 }
043
044 if ((o == null) || (getClass() != o.getClass())) {
045 return false;
046 }
047
048 final OperationKey that = (OperationKey) o;
049
050 if (!name.equals(that.name)) {
051 return false;
052 }
053
054 if (!Arrays.equals(signature, that.signature)) {
055 return false;
056 }
057
058 return true;
059 }
060
061
062 public int hashCode() {
063 return hashCode;
064 }
065 }