SqlFirstAnnotationProcessor.java 文件源码

java
阅读 36 收藏 0 点赞 0 评论 0

项目:sql-first-mapper 作者:
/**
 * Prepare Dao interfaces from {@link SqlSourceFile} annotation
 *
 * @param daoDescList dao description
 * @param roundEnv annotation processor environment
 */
private void prepareDaoClassImplementMap(List<DaoDesc> daoDescList, RoundEnvironment roundEnv) {
    Map<String, DaoDesc> daoDescMap = daoDescList.stream().collect(Collectors.toMap(DaoDesc::getSourceClassName, x -> x));

    Elements elementUtils = processingEnv.getElementUtils();

    Set<? extends Element> annotatedElements = roundEnv.getElementsAnnotatedWith(SqlSourceFile.class);
    for (Element element : annotatedElements) {
        SqlSourceFile ann = element.getAnnotation(SqlSourceFile.class);
        String key = elementUtils.getPackageOf(element).getQualifiedName().toString() + "." + element.getSimpleName().toString();
        DaoDesc daoDesc = daoDescMap.get(key);
        if (daoDesc == null){
            continue;
        }
        if (ann.implement()) {
            daoDesc.setImplementClassName(element.asType().toString());
        }
        daoDesc.setDaoType(ann.value());
        daoDesc.setTargetClassName(ann.targetClassName());
        daoDesc.setBaseDaoClassName(ann.baseDaoClassName());
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号