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 }