Search in sources :

Example 1 with Rules

use of org.mybatis.generator.internal.rules.Rules in project generator by mybatis.

the class ExampleGenerator method getCompilationUnits.

@Override
public List<CompilationUnit> getCompilationUnits() {
    FullyQualifiedTable table = introspectedTable.getFullyQualifiedTable();
    progressCallback.startTask(getString("Progress.6", //$NON-NLS-1$
    table.toString()));
    CommentGenerator commentGenerator = context.getCommentGenerator();
    FullyQualifiedJavaType type = new FullyQualifiedJavaType(introspectedTable.getExampleType());
    TopLevelClass topLevelClass = new TopLevelClass(type);
    topLevelClass.setVisibility(JavaVisibility.PUBLIC);
    commentGenerator.addJavaFileComment(topLevelClass);
    // add default constructor
    Method method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    method.setConstructor(true);
    method.setName(type.getShortName());
    if (generateForJava5) {
        //$NON-NLS-1$
        method.addBodyLine("oredCriteria = new ArrayList<Criteria>();");
    } else {
        //$NON-NLS-1$
        method.addBodyLine("oredCriteria = new ArrayList();");
    }
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    // add shallow copy constructor if the update by
    // example methods are enabled - because the parameter
    // class for update by example methods will subclass this class
    Rules rules = introspectedTable.getRules();
    if (rules.generateUpdateByExampleSelective() || rules.generateUpdateByExampleWithBLOBs() || rules.generateUpdateByExampleWithoutBLOBs()) {
        method = new Method();
        method.setVisibility(JavaVisibility.PROTECTED);
        method.setConstructor(true);
        method.setName(type.getShortName());
        //$NON-NLS-1$
        method.addParameter(new Parameter(type, "example"));
        //$NON-NLS-1$
        method.addBodyLine("this.orderByClause = example.orderByClause;");
        //$NON-NLS-1$
        method.addBodyLine("this.oredCriteria = example.oredCriteria;");
        //$NON-NLS-1$
        method.addBodyLine("this.distinct = example.distinct;");
        commentGenerator.addGeneralMethodComment(method, introspectedTable);
        topLevelClass.addMethod(method);
    }
    // add field, getter, setter for orderby clause
    Field field = new Field();
    field.setVisibility(JavaVisibility.PROTECTED);
    field.setType(FullyQualifiedJavaType.getStringInstance());
    //$NON-NLS-1$
    field.setName("orderByClause");
    commentGenerator.addFieldComment(field, introspectedTable);
    topLevelClass.addField(field);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    //$NON-NLS-1$
    method.setName("setOrderByClause");
    method.addParameter(new Parameter(FullyQualifiedJavaType.getStringInstance(), //$NON-NLS-1$
    "orderByClause"));
    //$NON-NLS-1$
    method.addBodyLine("this.orderByClause = orderByClause;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    method.setReturnType(FullyQualifiedJavaType.getStringInstance());
    //$NON-NLS-1$
    method.setName("getOrderByClause");
    //$NON-NLS-1$
    method.addBodyLine("return orderByClause;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    // add field, getter, setter for distinct
    field = new Field();
    field.setVisibility(JavaVisibility.PROTECTED);
    field.setType(FullyQualifiedJavaType.getBooleanPrimitiveInstance());
    //$NON-NLS-1$
    field.setName("distinct");
    commentGenerator.addFieldComment(field, introspectedTable);
    topLevelClass.addField(field);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    //$NON-NLS-1$
    method.setName("setDistinct");
    method.addParameter(new Parameter(FullyQualifiedJavaType.getBooleanPrimitiveInstance(), //$NON-NLS-1$
    "distinct"));
    //$NON-NLS-1$
    method.addBodyLine("this.distinct = distinct;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    method.setReturnType(FullyQualifiedJavaType.getBooleanPrimitiveInstance());
    //$NON-NLS-1$
    method.setName("isDistinct");
    //$NON-NLS-1$
    method.addBodyLine("return distinct;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    // add field and methods for the list of ored criteria
    field = new Field();
    field.setVisibility(JavaVisibility.PROTECTED);
    FullyQualifiedJavaType fqjt;
    if (generateForJava5) {
        //$NON-NLS-1$
        fqjt = new FullyQualifiedJavaType("java.util.List<Criteria>");
    } else {
        //$NON-NLS-1$
        fqjt = new FullyQualifiedJavaType("java.util.List");
    }
    field.setType(fqjt);
    //$NON-NLS-1$
    field.setName("oredCriteria");
    commentGenerator.addFieldComment(field, introspectedTable);
    topLevelClass.addField(field);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    method.setReturnType(fqjt);
    //$NON-NLS-1$
    method.setName("getOredCriteria");
    //$NON-NLS-1$
    method.addBodyLine("return oredCriteria;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    //$NON-NLS-1$
    method.setName("or");
    method.addParameter(new Parameter(FullyQualifiedJavaType.getCriteriaInstance(), //$NON-NLS-1$
    "criteria"));
    //$NON-NLS-1$
    method.addBodyLine("oredCriteria.add(criteria);");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    //$NON-NLS-1$
    method.setName("or");
    method.setReturnType(FullyQualifiedJavaType.getCriteriaInstance());
    //$NON-NLS-1$
    method.addBodyLine("Criteria criteria = createCriteriaInternal();");
    //$NON-NLS-1$
    method.addBodyLine("oredCriteria.add(criteria);");
    //$NON-NLS-1$
    method.addBodyLine("return criteria;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    //$NON-NLS-1$
    method.setName("createCriteria");
    method.setReturnType(FullyQualifiedJavaType.getCriteriaInstance());
    //$NON-NLS-1$
    method.addBodyLine("Criteria criteria = createCriteriaInternal();");
    //$NON-NLS-1$
    method.addBodyLine("if (oredCriteria.size() == 0) {");
    //$NON-NLS-1$
    method.addBodyLine("oredCriteria.add(criteria);");
    //$NON-NLS-1$
    method.addBodyLine("}");
    //$NON-NLS-1$
    method.addBodyLine("return criteria;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PROTECTED);
    //$NON-NLS-1$
    method.setName("createCriteriaInternal");
    method.setReturnType(FullyQualifiedJavaType.getCriteriaInstance());
    //$NON-NLS-1$
    method.addBodyLine("Criteria criteria = new Criteria();");
    //$NON-NLS-1$
    method.addBodyLine("return criteria;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    method = new Method();
    method.setVisibility(JavaVisibility.PUBLIC);
    //$NON-NLS-1$
    method.setName("clear");
    //$NON-NLS-1$
    method.addBodyLine("oredCriteria.clear();");
    //$NON-NLS-1$
    method.addBodyLine("orderByClause = null;");
    //$NON-NLS-1$
    method.addBodyLine("distinct = false;");
    commentGenerator.addGeneralMethodComment(method, introspectedTable);
    topLevelClass.addMethod(method);
    // now generate the inner class that holds the AND conditions
    topLevelClass.addInnerClass(getGeneratedCriteriaInnerClass(topLevelClass));
    topLevelClass.addInnerClass(getCriteriaInnerClass());
    List<CompilationUnit> answer = new ArrayList<CompilationUnit>();
    if (context.getPlugins().modelExampleClassGenerated(topLevelClass, introspectedTable)) {
        answer.add(topLevelClass);
    }
    return answer;
}
Also used : CompilationUnit(org.mybatis.generator.api.dom.java.CompilationUnit) Field(org.mybatis.generator.api.dom.java.Field) CommentGenerator(org.mybatis.generator.api.CommentGenerator) FullyQualifiedJavaType(org.mybatis.generator.api.dom.java.FullyQualifiedJavaType) FullyQualifiedTable(org.mybatis.generator.api.FullyQualifiedTable) TopLevelClass(org.mybatis.generator.api.dom.java.TopLevelClass) ArrayList(java.util.ArrayList) Parameter(org.mybatis.generator.api.dom.java.Parameter) Method(org.mybatis.generator.api.dom.java.Method) Rules(org.mybatis.generator.internal.rules.Rules)

Example 2 with Rules

use of org.mybatis.generator.internal.rules.Rules in project generator by mybatis.

the class ExtendedDAOMethodNameCalculator method getUpdateByPrimaryKeyWithoutBLOBsMethodName.

/**
     * 1. if this will be the only updateByPrimaryKey, then the result should be
     * updateByPrimaryKey. 2. If the other method is enabled, but there are
     * seperate base and blob classes, then the method name should be
     * updateByPrimaryKey 3. Else the method name should be
     * updateByPrimaryKeyWithoutBLOBs
     */
public String getUpdateByPrimaryKeyWithoutBLOBsMethodName(IntrospectedTable introspectedTable) {
    StringBuilder sb = new StringBuilder();
    //$NON-NLS-1$
    sb.append("update");
    sb.append(introspectedTable.getFullyQualifiedTable().getDomainObjectName());
    Rules rules = introspectedTable.getRules();
    if (!rules.generateUpdateByPrimaryKeyWithBLOBs()) {
        //$NON-NLS-1$
        sb.append("ByPrimaryKey");
    } else if (rules.generateRecordWithBLOBsClass()) {
        //$NON-NLS-1$
        sb.append("ByPrimaryKey");
    } else {
        //$NON-NLS-1$
        sb.append("ByPrimaryKeyWithoutBLOBs");
    }
    return sb.toString();
}
Also used : Rules(org.mybatis.generator.internal.rules.Rules)

Example 3 with Rules

use of org.mybatis.generator.internal.rules.Rules in project generator by mybatis.

the class ExtendedDAOMethodNameCalculator method getSelectByExampleWithoutBLOBsMethodName.

/**
     * 1. if this will be the only selectByExample, then the result should be
     * selectByExample. 2. Else the method name should be
     * selectByExampleWithoutBLOBs
     */
public String getSelectByExampleWithoutBLOBsMethodName(IntrospectedTable introspectedTable) {
    StringBuilder sb = new StringBuilder();
    //$NON-NLS-1$
    sb.append("select");
    sb.append(introspectedTable.getFullyQualifiedTable().getDomainObjectName());
    //$NON-NLS-1$
    sb.append("ByExample");
    Rules rules = introspectedTable.getRules();
    if (rules.generateSelectByExampleWithBLOBs()) {
        //$NON-NLS-1$
        sb.append("WithoutBLOBs");
    }
    return sb.toString();
}
Also used : Rules(org.mybatis.generator.internal.rules.Rules)

Example 4 with Rules

use of org.mybatis.generator.internal.rules.Rules in project generator by mybatis.

the class ExtendedDAOMethodNameCalculator method getUpdateByExampleWithBLOBsMethodName.

public String getUpdateByExampleWithBLOBsMethodName(IntrospectedTable introspectedTable) {
    StringBuilder sb = new StringBuilder();
    //$NON-NLS-1$
    sb.append("update");
    sb.append(introspectedTable.getFullyQualifiedTable().getDomainObjectName());
    Rules rules = introspectedTable.getRules();
    if (!rules.generateUpdateByExampleWithoutBLOBs()) {
        //$NON-NLS-1$
        sb.append("ByExample");
    } else if (rules.generateRecordWithBLOBsClass()) {
        //$NON-NLS-1$
        sb.append("ByExample");
    } else {
        //$NON-NLS-1$
        sb.append("ByExampleWithBLOBs");
    }
    return sb.toString();
}
Also used : Rules(org.mybatis.generator.internal.rules.Rules)

Example 5 with Rules

use of org.mybatis.generator.internal.rules.Rules in project generator by mybatis.

the class ExtendedDAOMethodNameCalculator method getUpdateByPrimaryKeyWithBLOBsMethodName.

/**
     * 1. if this will be the only updateByPrimaryKey, then the result should be
     * updateByPrimaryKey. 2. If the other method is enabled, but there are
     * seperate base and blob classes, then the method name should be
     * updateByPrimaryKey 3. Else the method name should be
     * updateByPrimaryKeyWithBLOBs
     */
public String getUpdateByPrimaryKeyWithBLOBsMethodName(IntrospectedTable introspectedTable) {
    StringBuilder sb = new StringBuilder();
    //$NON-NLS-1$
    sb.append("update");
    sb.append(introspectedTable.getFullyQualifiedTable().getDomainObjectName());
    Rules rules = introspectedTable.getRules();
    if (!rules.generateUpdateByPrimaryKeyWithoutBLOBs()) {
        //$NON-NLS-1$
        sb.append("ByPrimaryKey");
    } else if (rules.generateRecordWithBLOBsClass()) {
        //$NON-NLS-1$
        sb.append("ByPrimaryKey");
    } else {
        //$NON-NLS-1$
        sb.append("ByPrimaryKeyWithBLOBs");
    }
    return sb.toString();
}
Also used : Rules(org.mybatis.generator.internal.rules.Rules)

Aggregations

Rules (org.mybatis.generator.internal.rules.Rules)8 ArrayList (java.util.ArrayList)1 CommentGenerator (org.mybatis.generator.api.CommentGenerator)1 FullyQualifiedTable (org.mybatis.generator.api.FullyQualifiedTable)1 CompilationUnit (org.mybatis.generator.api.dom.java.CompilationUnit)1 Field (org.mybatis.generator.api.dom.java.Field)1 FullyQualifiedJavaType (org.mybatis.generator.api.dom.java.FullyQualifiedJavaType)1 Method (org.mybatis.generator.api.dom.java.Method)1 Parameter (org.mybatis.generator.api.dom.java.Parameter)1 TopLevelClass (org.mybatis.generator.api.dom.java.TopLevelClass)1 AbstractDAOElementGenerator (org.mybatis.generator.codegen.ibatis2.dao.elements.AbstractDAOElementGenerator)1 UpdateByExampleParmsInnerclassGenerator (org.mybatis.generator.codegen.ibatis2.dao.elements.UpdateByExampleParmsInnerclassGenerator)1