-package org.simantics.databoard.annotations;\r
-\r
-import java.lang.annotation.Annotation;\r
-import java.lang.reflect.Array;\r
-import java.util.Arrays;\r
-\r
-public class ArgumentImpl implements Arguments {\r
-\r
- int hash;\r
- Class<?>[] args;\r
- \r
- public ArgumentImpl(Class<?>...args) {\r
- hash = Arrays.hashCode(args);\r
- this.args = args;\r
- }\r
-\r
- \r
- /**\r
- * Drop first arguments from an argument list. \r
- * If all were dropped, null is returned.\r
- *\r
- * @param src source argument or null\r
- * @param count argument count\r
- * @return Argument or null.\r
- */\r
- public static Arguments dropArguments(Arguments src, int count) {\r
- if (src==null) return null;\r
- int newLen = src.value().length - count;\r
- if (newLen<=0) return null;\r
- Class<?>[] newList = (Class<?>[]) Array.newInstance(Class.class, newLen);\r
- System.arraycopy(src.value(), count, newList, 0, newLen);\r
- return new ArgumentImpl(newList);\r
- } \r
- \r
- @Override\r
- public Class<? extends Annotation> annotationType() {\r
- return Arguments.class;\r
- }\r
-\r
- @Override\r
- public Class<?>[] value() {\r
- return args;\r
- }\r
- \r
- @Override\r
- public int hashCode() { \r
- return hash;\r
- }\r
- \r
- @Override\r
- public boolean equals(Object obj) {\r
- if ( obj instanceof Arguments == false ) return false;\r
- Arguments other = (Arguments) obj;\r
- Class<?>[] classArray1 = args;\r
- Class<?>[] classArray2 = other.value();\r
- \r
- return Arrays.deepEquals(classArray1, classArray2);\r
- }\r
-\r
-}\r
+package org.simantics.databoard.annotations;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Array;
+import java.util.Arrays;
+
+public class ArgumentImpl implements Arguments {
+
+ int hash;
+ Class<?>[] args;
+
+ public ArgumentImpl(Class<?>...args) {
+ hash = Arrays.hashCode(args);
+ this.args = args;
+ }
+
+
+ /**
+ * Drop first arguments from an argument list.
+ * If all were dropped, null is returned.
+ *
+ * @param src source argument or null
+ * @param count argument count
+ * @return Argument or null.
+ */
+ public static Arguments dropArguments(Arguments src, int count) {
+ if (src==null) return null;
+ int newLen = src.value().length - count;
+ if (newLen<=0) return null;
+ Class<?>[] newList = (Class<?>[]) Array.newInstance(Class.class, newLen);
+ System.arraycopy(src.value(), count, newList, 0, newLen);
+ return new ArgumentImpl(newList);
+ }
+
+ @Override
+ public Class<? extends Annotation> annotationType() {
+ return Arguments.class;
+ }
+
+ @Override
+ public Class<?>[] value() {
+ return args;
+ }
+
+ @Override
+ public int hashCode() {
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( obj instanceof Arguments == false ) return false;
+ Arguments other = (Arguments) obj;
+ Class<?>[] classArray1 = args;
+ Class<?>[] classArray2 = other.value();
+
+ return Arrays.deepEquals(classArray1, classArray2);
+ }
+
+}