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;
}
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();
}
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();
}
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();
}
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();
}
Aggregations