test_class.file: zuchini-junit/src/test/java/org/zuchini/junit/description/AnnotationHandlerTest.java
test_class.identifier: AnnotationHandlerTest
test_case.body: @Test
      public void testDeepEquals() {
          Feature feature1 = createFeature();
          Feature feature2 = createFeature();
  
          FeatureInfo featureInfo1 = AnnotationHandler.create(FeatureInfo.class, feature1);
          FeatureInfo featureInfo2 = AnnotationHandler.create(FeatureInfo.class, feature2);
  
          Assert.assertFalse(featureInfo1 == featureInfo2);
          Assert.assertEquals(featureInfo1, featureInfo2);
      }
test_case.class_method_signature: AnnotationHandlerTest.testDeepEquals()
test_case.full_signature: @Test public void testDeepEquals()
test_case.identifier: testDeepEquals
test_case.invocations: createFeature createFeature create create assertFalse assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDeepEquals()
focal_class.declarator: EMPTY_ARGS = {}
focal_class.modifier: private static final
focal_class.original_string: private static final Object[] EMPTY_ARGS = {};
focal_class.type: Object[]
focal_class.var_name: EMPTY_ARGS
focal_class.declarator: ATOMIC_TYPES = new HashSet<Class<?>>(asList(
              Byte.TYPE, Short.TYPE, Character.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE,
              Byte.class, Short.class, Character.class, Integer.class, Long.class, Float.class, Double.class,
              String.class))
focal_class.modifier: private static final
focal_class.original_string: private static final Set<Class<?>> ATOMIC_TYPES = new HashSet<Class<?>>(asList(
              Byte.TYPE, Short.TYPE, Character.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE,
              Byte.class, Short.class, Character.class, Integer.class, Long.class, Float.class, Double.class,
              String.class));
focal_class.type: Set<Class<?>>
focal_class.var_name: ATOMIC_TYPES
focal_class.declarator: annotationType
focal_class.modifier: private final
focal_class.original_string: private final Class<? extends Annotation> annotationType;
focal_class.type: Class<? extends Annotation>
focal_class.var_name: annotationType
focal_class.declarator: bean
focal_class.modifier: private final
focal_class.original_string: private final Object bean;
focal_class.type: Object
focal_class.var_name: bean
focal_class.file: zuchini-junit/src/main/java/org/zuchini/junit/description/AnnotationHandler.java
focal_class.identifier: AnnotationHandler
focal_class.interfaces: implements InvocationHandler
focal_class.class_method_signature: AnnotationHandler.AnnotationHandler(Class<? extends Annotation> annotationType, Object bean)
focal_class.full_signature: private  AnnotationHandler(Class<? extends Annotation> annotationType, Object bean)
focal_class.identifier: AnnotationHandler
focal_class.modifiers: private
focal_class.parameters: (Class<? extends Annotation> annotationType, Object bean)
focal_class.signature:  AnnotationHandler(Class<? extends Annotation> annotationType, Object bean)
focal_class.class_method_signature: AnnotationHandler.create(Class<T> annotationType, Object bean)
focal_class.full_signature: @SuppressWarnings("unchecked") public static T create(Class<T> annotationType, Object bean)
focal_class.identifier: create
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: (Class<T> annotationType, Object bean)
focal_class.return: T
focal_class.signature: T create(Class<T> annotationType, Object bean)
focal_class.class_method_signature: AnnotationHandler.castToAnnotationType(Class<?> type)
focal_class.full_signature: @SuppressWarnings("unchecked") private static Class<? extends Annotation> castToAnnotationType(Class<?> type)
focal_class.identifier: castToAnnotationType
focal_class.modifiers: @SuppressWarnings("unchecked") private static
focal_class.parameters: (Class<?> type)
focal_class.return: Class<? extends Annotation>
focal_class.signature: Class<? extends Annotation> castToAnnotationType(Class<?> type)
focal_class.class_method_signature: AnnotationHandler.invoke(Object proxy, Method method, Object[] args)
focal_class.full_signature: @Override public Object invoke(Object proxy, Method method, Object[] args)
focal_class.identifier: invoke
focal_class.modifiers: @Override public
focal_class.parameters: (Object proxy, Method method, Object[] args)
focal_class.return: Object
focal_class.signature: Object invoke(Object proxy, Method method, Object[] args)
focal_class.class_method_signature: AnnotationHandler.annotationEquals(Object proxy, Object other)
focal_class.full_signature: public boolean annotationEquals(Object proxy, Object other)
focal_class.identifier: annotationEquals
focal_class.modifiers: public
focal_class.parameters: (Object proxy, Object other)
focal_class.return: boolean
focal_class.signature: boolean annotationEquals(Object proxy, Object other)
focal_class.class_method_signature: AnnotationHandler.annotationHashCode(Object proxy)
focal_class.full_signature: public int annotationHashCode(Object proxy)
focal_class.identifier: annotationHashCode
focal_class.modifiers: public
focal_class.parameters: (Object proxy)
focal_class.return: int
focal_class.signature: int annotationHashCode(Object proxy)
focal_class.class_method_signature: AnnotationHandler.annotationToString(Object proxy)
focal_class.full_signature: public String annotationToString(Object proxy)
focal_class.identifier: annotationToString
focal_class.modifiers: public
focal_class.parameters: (Object proxy)
focal_class.return: String
focal_class.signature: String annotationToString(Object proxy)
focal_method.body: @SuppressWarnings("unchecked")
      public static <T extends Annotation> T create(Class<T> annotationType, Object bean) {
          return (T) Proxy.newProxyInstance(annotationType.getClassLoader(), new Class<?>[]{annotationType},
                  new AnnotationHandler(annotationType, bean));
      }
focal_method.class_method_signature: AnnotationHandler.create(Class<T> annotationType, Object bean)
focal_method.full_signature: @SuppressWarnings("unchecked") public static T create(Class<T> annotationType, Object bean)
focal_method.identifier: create
focal_method.invocations: newProxyInstance getClassLoader
focal_method.modifiers: @SuppressWarnings("unchecked") public static
focal_method.parameters: (Class<T> annotationType, Object bean)
focal_method.return: T
focal_method.signature: T create(Class<T> annotationType, Object bean)