JvmClass () { TypeRepr.ClassType annotation1 = new TypeRepr.ClassType(ANNOTATION1_NAME); TypeRepr.ClassType annotation2 = new TypeRepr.ClassType(ANNOTATION2_NAME); Iterable<TypeRepr.ClassType> annotations = Arrays.asList(annotation1, annotation2); JVMFlags jvmFlags = new JVMFlags(JVM_FLAGS_VALUE); JvmField firstJvmField = new JvmField(jvmFlags, SIGNATURE, NAME, DESCRIPTOR, annotations, FIRST_JVM_FIELD_VALUE); JvmField secondJvmField = new JvmField(jvmFlags, SIGNATURE2, NAME2, DESCRIPTOR2, annotations, SECOND_JVM_FIELD_VALUE); Iterable<JvmField> fields = Arrays.asList(firstJvmField, secondJvmField); Set<ParamAnnotation> paramAnnotations = new HashSet<>(Arrays.asList(PARAM_ANNOTATION1, PARAM_ANNOTATION2)); JvmMethod jvmMethod1 = new JvmMethod(jvmFlags, SIGNATURE, NAME, DESCRIPTOR, annotations, paramAnnotations, List.of(EXCEPTION1, EXCEPTION2), FIRST_JVM_METHOD_VALUE); JvmMethod jvmMethod2 = new JvmMethod(jvmFlags, SIGNATURE2, NAME2, DESCRIPTOR2, annotations, paramAnnotations, List.of(EXCEPTION3, EXCEPTION4), SECOND_JVM_METHOD_VALUE); Iterable<JvmMethod> methods = List.of(jvmMethod1, jvmMethod2); Iterable<TypeRepr.ClassType> classAnnotations = Arrays.asList(new TypeRepr.ClassType(CLASS_TYPE_1), new TypeRepr.ClassType(CLASS_TYPE_2)); Iterable<Usage> usages = Arrays.asList(new ClassNewUsage(CLASS_NEW_USAGE)); Iterable<ElemType> annotationTargets = Arrays.asList(ElemType.TYPE_USE, ElemType.PACKAGE); return new JvmClass(jvmFlags, SIGNATURE, FQ_NAME, OUT_FILE_PATH, SUPER_FQ_NAME, OUTER_FQ_NAME, Arrays.asList(INTERFACE_1, INTERFACE_2), fields, methods, classAnnotations, annotationTargets, null, usages); }