public static TypeCategory get(String className) {
        for (TypeCategory category : values()) {
            if (category.supports(className)) {
                return category;
            }
        }
        return SIMPLE;
    }
transitive and reflexive subCategoryOf check

@param ancestor
@return
querydsl-codegen-utils/src/main/java/com/querydsl/codegen/utils/model/TypeCategory.java