/** 添加方法 */
 protected void addMethod(TopLevelClass topLevelClass, String tableName) {
   Method method2 = new Method();
   for (int i = 0; i < methods.size(); i++) {
     Method method = new Method();
     method2 = methods.get(i);
     method = method2;
     method.removeAllBodyLines();
     method.removeAnnotation();
     StringBuilder sb = new StringBuilder();
     sb.append("return this.");
     sb.append(getDaoShort());
     sb.append(method.getName());
     sb.append("(");
     List<Parameter> list = method.getParameters();
     for (int j = 0; j < list.size(); j++) {
       sb.append(list.get(j).getName());
       sb.append(",");
     }
     sb.setLength(sb.length() - 1);
     sb.append(");");
     method.addBodyLine(sb.toString());
     topLevelClass.addMethod(method);
   }
   methods.clear();
 }
  /**
   * 添加接口
   *
   * @param tableName
   * @param files
   */
  protected void addService(
      Interface interface1,
      IntrospectedTable introspectedTable,
      String tableName,
      List<GeneratedJavaFile> files) {

    interface1.setVisibility(JavaVisibility.PUBLIC);

    // 添加方法
    Method method = countByExample(introspectedTable, tableName);
    method.removeAllBodyLines();
    interface1.addMethod(method);

    method = selectByPrimaryKey(introspectedTable, tableName);
    method.removeAllBodyLines();
    interface1.addMethod(method);

    method = selectByExample(introspectedTable, tableName);
    method.removeAllBodyLines();
    interface1.addMethod(method);

    if (enableDeleteByPrimaryKey) {
      method = getOtherInteger("deleteByPrimaryKey", introspectedTable, tableName, 2);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableUpdateByPrimaryKeySelective) {
      method = getOtherInteger("updateByPrimaryKeySelective", introspectedTable, tableName, 1);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableUpdateByPrimaryKey) {
      method = getOtherInteger("updateByPrimaryKey", introspectedTable, tableName, 1);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableDeleteByExample) {
      method = getOtherInteger("deleteByExample", introspectedTable, tableName, 3);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableUpdateByExampleSelective) {
      method = getOtherInteger("updateByExampleSelective", introspectedTable, tableName, 4);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableUpdateByExample) {
      method = getOtherInteger("updateByExample", introspectedTable, tableName, 4);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableInsert) {
      method = getOtherInsertboolean("insert", introspectedTable, tableName);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }
    if (enableInsertSelective) {
      method = getOtherInsertboolean("insertSelective", introspectedTable, tableName);
      method.removeAllBodyLines();
      interface1.addMethod(method);
    }

    GeneratedJavaFile file =
        new GeneratedJavaFile(
            interface1,
            project,
            context.getProperty(PropertyRegistry.CONTEXT_JAVA_FILE_ENCODING),
            context.getJavaFormatter());
    files.add(file);
  }