public Optional<TypeInfo> superClassTypeInfo() { return superTypeInfo().flatMap(SuperTypeInfo::typeInfo); }
private Stream<AnnotationInfo> superTypeInfoAnnotationStream() { return superTypeInfo() .map(SuperTypeInfo::annotationInfoStream) .orElse(Stream.empty()); }
private Stream<MethodInfo> superTypeInfoMethodStream() { return superTypeInfo() .map(SuperTypeInfo::methodInfoStream) .orElse(Stream.empty()); }
InterfaceInfoMap getInterfaceInfoMap() { SuperTypeInfo superTypeInfo = superTypeInfo().orElse(SuperTypeInfoVoid.get()); InterfaceInfoMap thisMap = interfaceInfoMap(); return thisMap.add(superTypeInfo.getInterfaceInfoMap()); }
private static SuperTypeInfo superTypeInfo(TypeInfo typeInfo) { return TestingSuperTypeInfo.builder() .annotationInfoList(typeInfo.annotationInfoList()) .superTypeInfo(typeInfo.superTypeInfo()) .interfaceInfoMap(typeInfo.interfaceInfoMap()) .methodInfoList(typeInfo.methodInfoList()) .build(); }
@Override public Equality isEqualTo(Object that) { return Tester.of(TypeInfo.class) .add("accessInfo", o -> o.accessInfo()) .add("kind", o -> o.kind()) .add("packageInfo", o -> o.packageInfo()) .add("name", o -> o.name()) .add("typeParameterInfoMap", o -> o.typeParameterInfoMap()) .add("annotationInfoList", o -> o.annotationInfoList()) .add("enclosingSimpleTypeInfo", o -> o.enclosingSimpleTypeInfo()) .add("superTypeInfo", o -> o.superTypeInfo()) .add("interfaceInfoMap", o -> o.interfaceInfoMap()) .add("fieldInfoList", o -> o.fieldInfoList()) .add("constructorInfoList", o -> o.constructorInfoList()) .add("methodInfoList", o -> o.methodInfoList()) .add("declaredTypeInfoList", o -> o.declaredTypeInfoList()) .test(this, that); }