/** * @param introspectedColumn * @param inMethod if true generates an "in" method, else generates a "not in" method * @return a generated method for the in or not in method */ private Method getSetInOrNotInMethod(IntrospectedColumn introspectedColumn, boolean inMethod) { Method method = new Method(); method.setVisibility(JavaVisibility.PUBLIC); FullyQualifiedJavaType type = FullyQualifiedJavaType.getNewListInstance(); if (introspectedColumn.getFullyQualifiedJavaType().isPrimitive()) { type.addTypeArgument( introspectedColumn.getFullyQualifiedJavaType().getPrimitiveTypeWrapper()); } else { type.addTypeArgument(introspectedColumn.getFullyQualifiedJavaType()); } method.addParameter(new Parameter(type, "values")); // $NON-NLS-1$ StringBuilder sb = new StringBuilder(); sb.append(introspectedColumn.getJavaProperty()); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); sb.insert(0, "and"); // $NON-NLS-1$ if (inMethod) { sb.append("In"); // $NON-NLS-1$ } else { sb.append("NotIn"); // $NON-NLS-1$ } method.setName(sb.toString()); method.setReturnType(FullyQualifiedJavaType.getCriteriaInstance()); sb.setLength(0); if (introspectedColumn.isJDBCDateColumn()) { sb.append("addCriterionForJDBCDate(\""); // $NON-NLS-1$ } else if (introspectedColumn.isJDBCTimeColumn()) { sb.append("addCriterionForJDBCTime(\""); // $NON-NLS-1$ } else if (stringHasValue(introspectedColumn.getTypeHandler())) { sb.append("add"); // $NON-NLS-1$ sb.append(introspectedColumn.getJavaProperty()); sb.setCharAt(3, Character.toUpperCase(sb.charAt(3))); sb.append("Criterion(\""); // $NON-NLS-1$ } else { sb.append("addCriterion(\""); // $NON-NLS-1$ } sb.append(MyBatis3FormattingUtilities.getAliasedActualColumnName(introspectedColumn)); if (inMethod) { sb.append(" in"); // $NON-NLS-1$ } else { sb.append(" not in"); // $NON-NLS-1$ } sb.append("\", values, \""); // $NON-NLS-1$ sb.append(introspectedColumn.getJavaProperty()); sb.append("\");"); // $NON-NLS-1$ method.addBodyLine(sb.toString()); method.addBodyLine("return (Criteria) this;"); // $NON-NLS-1$ return method; }
private Method getSingleValueMethod( IntrospectedColumn introspectedColumn, String nameFragment, String operator) { Method method = new Method(); method.setVisibility(JavaVisibility.PUBLIC); method.addParameter( new Parameter(introspectedColumn.getFullyQualifiedJavaType(), "value")); // $NON-NLS-1$ StringBuilder sb = new StringBuilder(); sb.append(introspectedColumn.getJavaProperty()); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); sb.insert(0, "and"); // $NON-NLS-1$ sb.append(nameFragment); method.setName(sb.toString()); method.setReturnType(FullyQualifiedJavaType.getCriteriaInstance()); sb.setLength(0); if (introspectedColumn.isJDBCDateColumn()) { sb.append("addCriterionForJDBCDate(\""); // $NON-NLS-1$ } else if (introspectedColumn.isJDBCTimeColumn()) { sb.append("addCriterionForJDBCTime(\""); // $NON-NLS-1$ } else if (stringHasValue(introspectedColumn.getTypeHandler())) { sb.append("add"); // $NON-NLS-1$ sb.append(introspectedColumn.getJavaProperty()); sb.setCharAt(3, Character.toUpperCase(sb.charAt(3))); sb.append("Criterion(\""); // $NON-NLS-1$ } else { sb.append("addCriterion(\""); // $NON-NLS-1$ } sb.append(MyBatis3FormattingUtilities.getAliasedActualColumnName(introspectedColumn)); sb.append(' '); sb.append(operator); sb.append("\", "); // $NON-NLS-1$ if (introspectedColumn.getFullyQualifiedJavaType().isPrimitive()) { sb.append("new "); // $NON-NLS-1$ sb.append( introspectedColumn.getFullyQualifiedJavaType().getPrimitiveTypeWrapper().getShortName()); sb.append("(value)"); // $NON-NLS-1$ } else { sb.append("value"); // $NON-NLS-1$ } sb.append(", \""); // $NON-NLS-1$ sb.append(introspectedColumn.getJavaProperty()); sb.append("\");"); // $NON-NLS-1$ method.addBodyLine(sb.toString()); method.addBodyLine("return (Criteria) this;"); // $NON-NLS-1$ return method; }