private void addIncMethodToTopLevelClass(TopLevelClass topLevelClass, InnerClass builderCls, IntrospectedTable introspectedTable, boolean withLombok) {
        // 增加field
        Field fIncrements = JavaElementGeneratorTools.generateField(
                IncrementsPlugin.FIELD_INC_MAP,
                JavaVisibility.PROTECTED,
                new FullyQualifiedJavaType("Map<String, " + this.getIncEnum(builderCls, introspectedTable).getFullyQualifiedName() + ">"),
                "new HashMap<String, " + this.getIncEnum(builderCls, introspectedTable).getFullyQualifiedName() + ">()"
        );
        fIncrements.setFinal(true);
        commentGenerator.addFieldComment(fIncrements, introspectedTable);
        topLevelClass.addField(fIncrements);
        topLevelClass.addImportedType("java.util.Map");
        topLevelClass.addImportedType("java.util.HashMap");
        // inc map 获取方法
        if (withLombok) {
            topLevelClass.addImportedType(LombokPlugin.EnumLombokAnnotations.ACCESSORS_FLUENT_TRUE.getClazz());
            fIncrements.addAnnotation(LombokPlugin.EnumLombokAnnotations.ACCESSORS_FLUENT_TRUE.getAnnotation());
        } else {
            Method getIncMapMethod = JavaElementGeneratorTools.generateMethod(
                    METHOD_GET_INC_MAP,
                    JavaVisibility.PUBLIC,
                    fIncrements.getType()
            );
            commentGenerator.addGeneralMethodComment(getIncMapMethod, introspectedTable);
            getIncMapMethod.addBodyLine("return this." + FIELD_INC_MAP + ";");
            FormatTools.addMethodWithBestPosition(topLevelClass, getIncMapMethod);
        }
        // 增加判断方法
        Method mHasIncsForColumn = JavaElementGeneratorTools.generateMethod(
                IncrementsPlugin.METHOD_INC_CHECK,
                JavaVisibility.PUBLIC,
                FullyQualifiedJavaType.getBooleanPrimitiveInstance(),
                new Parameter(FullyQualifiedJavaType.getStringInstance(), "column")
        );
        commentGenerator.addGeneralMethodComment(mHasIncsForColumn, introspectedTable);
        mHasIncsForColumn.addBodyLine("return " + IncrementsPlugin.FIELD_INC_MAP + ".get(column) != null;");
        FormatTools.addMethodWithBestPosition(topLevelClass, mHasIncsForColumn);
    }
private void addIncMethodToTopLevelClass(TopLevelClass topLevelClass, InnerClass builderCls, IntrospectedTable introspectedTable, boolean withLombok) {
        
        Field fIncrements = JavaElementGeneratorTools.generateField(
                IncrementsPlugin.FIELD_INC_MAP,
                JavaVisibility.PROTECTED,
                new FullyQualifiedJavaType("Map<String, " + this.getIncEnum(builderCls, introspectedTable).getFullyQualifiedName() + ">"),
                "new HashMap<String, " + this.getIncEnum(builderCls, introspectedTable).getFullyQualifiedName() + ">()"
        );
        fIncrements.setFinal(true);
        commentGenerator.addFieldComment(fIncrements, introspectedTable);
        topLevelClass.addField(fIncrements);
        topLevelClass.addImportedType("java.util.Map");
        topLevelClass.addImportedType("java.util.HashMap");
        
        if (withLombok) {
            topLevelClass.addImportedType(LombokPlugin.EnumLombokAnnotations.ACCESSORS_FLUENT_TRUE.getClazz());
            fIncrements.addAnnotation(LombokPlugin.EnumLombokAnnotations.ACCESSORS_FLUENT_TRUE.getAnnotation());
        } else {
            Method getIncMapMethod = JavaElementGeneratorTools.generateMethod(
                    METHOD_GET_INC_MAP,
                    JavaVisibility.PUBLIC,
                    fIncrements.getType()
            );
            commentGenerator.addGeneralMethodComment(getIncMapMethod, introspectedTable);
            getIncMapMethod.addBodyLine("return this." + FIELD_INC_MAP + ";");
            FormatTools.addMethodWithBestPosition(topLevelClass, getIncMapMethod);
        }
        
        Method mHasIncsForColumn = JavaElementGeneratorTools.generateMethod(
                IncrementsPlugin.METHOD_INC_CHECK,
                JavaVisibility.PUBLIC,
                FullyQualifiedJavaType.getBooleanPrimitiveInstance(),
                new Parameter(FullyQualifiedJavaType.getStringInstance(), "column")
        );
        commentGenerator.addGeneralMethodComment(mHasIncsForColumn, introspectedTable);
        mHasIncsForColumn.addBodyLine("return " + IncrementsPlugin.FIELD_INC_MAP + ".get(column) != null;");
        FormatTools.addMethodWithBestPosition(topLevelClass, mHasIncsForColumn);
    }
private void addIncMethodToTopLevelClass ( TopLevelClass topLevelClass , InnerClass builderCls , IntrospectedTable introspectedTable , boolean withLombok ) { // 增加field Field fIncrements = JavaElementGeneratorTools . generateField ( IncrementsPlugin . FIELD_INC_MAP , JavaVisibility . PROTECTED , new FullyQualifiedJavaType ( "Map<String, " + this . getIncEnum ( builderCls , introspectedTable ) . getFullyQualifiedName ( ) + ">" ) , "new HashMap<String, " + this . getIncEnum ( builderCls , introspectedTable ) . getFullyQualifiedName ( ) + ">()" ) ; fIncrements . setFinal ( true ) ; commentGenerator . addFieldComment ( fIncrements , introspectedTable ) ; topLevelClass . addField ( fIncrements ) ; topLevelClass . addImportedType ( "java.util.Map" ) ; topLevelClass . addImportedType ( "java.util.HashMap" ) ; // inc map 获取方法 if ( withLombok ) { topLevelClass . addImportedType ( LombokPlugin . EnumLombokAnnotations . ACCESSORS_FLUENT_TRUE . getClazz ( ) ) ; fIncrements . addAnnotation ( LombokPlugin . EnumLombokAnnotations . ACCESSORS_FLUENT_TRUE . getAnnotation ( ) ) ; } else { Method getIncMapMethod = JavaElementGeneratorTools . generateMethod ( METHOD_GET_INC_MAP , JavaVisibility . PUBLIC , fIncrements . getType ( ) ) ; commentGenerator . addGeneralMethodComment ( getIncMapMethod , introspectedTable ) ; getIncMapMethod . addBodyLine ( "return this." + FIELD_INC_MAP + ";" ) ; FormatTools . addMethodWithBestPosition ( topLevelClass , getIncMapMethod ) ; } // 增加判断方法 Method mHasIncsForColumn = JavaElementGeneratorTools . generateMethod ( IncrementsPlugin . METHOD_INC_CHECK , JavaVisibility . PUBLIC , FullyQualifiedJavaType . getBooleanPrimitiveInstance ( ) , new Parameter ( FullyQualifiedJavaType . getStringInstance ( ) , "column" ) ) ; commentGenerator . addGeneralMethodComment ( mHasIncsForColumn , introspectedTable ) ; mHasIncsForColumn . addBodyLine ( "return " + IncrementsPlugin . FIELD_INC_MAP + ".get(column) != null;" ) ; FormatTools . addMethodWithBestPosition ( topLevelClass , mHasIncsForColumn ) ; }
向topLevelClass 添加必要的操作函数
@param topLevelClass
@param builderCls
@param introspectedTable
@param withLombok
向topLevelClass 添加必要的操作函数