private void determineApiTypes() { importedTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(ClassTypeInfo.class)). filter(t -> !t.getPackageName().equals(ifaceFQCN)). collect(Collectors.toSet()); referencedTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(ApiTypeInfo.class)). filter(t -> !t.equals(type.getRaw())). collect(Collectors.toSet()); referencedDataObjectTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(DataObjectTypeInfo.class)). filter(t -> t.getKind() == ClassKind.DATA_OBJECT). collect(Collectors.toSet()); referencedEnumTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(EnumTypeInfo.class)). filter(t -> t.getKind() == ClassKind.ENUM). collect(Collectors.toSet()); }
@Test public void testEnum() throws Exception { doTest(EnumHolder.class, map -> { EnumTypeInfo apiEnum = (EnumTypeInfo) map.get("apiEnum"); assertEquals(ClassKind.ENUM, apiEnum.getKind()); assertEquals(Arrays.asList("RED", "GREEN", "BLUE"), apiEnum.getValues()); assertTrue(apiEnum.isGen()); EnumTypeInfo otherEnum = (EnumTypeInfo) map.get("otherEnum"); assertEquals(ClassKind.ENUM, otherEnum.getKind()); assertEquals(Arrays.asList("NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS"), otherEnum.getValues()); assertFalse(otherEnum.isGen()); }); }