1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.internal;
20
21 import static com.google.common.base.Preconditions.checkNotNull;
22
23 import java.lang.reflect.Method;
24 import java.util.Arrays;
25
26 import org.jclouds.javax.annotation.Nullable;
27
28
29
30
31
32 public class ClassMethodArgs {
33 private final Method method;
34 private final Object[] args;
35 private final Class<?> asyncClass;
36
37 public ClassMethodArgs(Class<?> asyncClass, Method method, @Nullable Object[] args) {
38 this.asyncClass = checkNotNull(asyncClass, "asyncClass");
39 this.method = checkNotNull(method, "method");
40 this.args = args;
41 }
42
43 @Override
44 public String toString() {
45 return "[class=" + asyncClass.getSimpleName() + ", method=" + method.getName() + ", args="
46 + Arrays.toString(args) + "]";
47 }
48
49 public Method getMethod() {
50 return method;
51 }
52
53 public Object[] getArgs() {
54 return args;
55 }
56
57 @Override
58 public int hashCode() {
59 final int prime = 31;
60 int result = 1;
61 result = prime * result + Arrays.hashCode(args);
62 result = prime * result + ((asyncClass == null) ? 0 : asyncClass.hashCode());
63 result = prime * result + ((method == null) ? 0 : method.hashCode());
64 return result;
65 }
66
67 @Override
68 public boolean equals(Object obj) {
69 if (this == obj)
70 return true;
71 if (obj == null)
72 return false;
73 if (getClass() != obj.getClass())
74 return false;
75 ClassMethodArgs other = (ClassMethodArgs) obj;
76 if (!Arrays.equals(args, other.args))
77 return false;
78 if (asyncClass == null) {
79 if (other.asyncClass != null)
80 return false;
81 } else if (!asyncClass.equals(other.asyncClass))
82 return false;
83 if (method == null) {
84 if (other.method != null)
85 return false;
86 } else if (!method.equals(other.method))
87 return false;
88 return true;
89 }
90
91 public Class<?> getAsyncClass() {
92 return asyncClass;
93 }
94 }