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    }