001package cn.mybatis.mp.generator.config; 002 003import lombok.Getter; 004 005import java.util.ArrayList; 006import java.util.Arrays; 007import java.util.Comparator; 008import java.util.List; 009import java.util.stream.Collectors; 010 011@Getter 012public class TableConfig { 013 014 /** 015 * 需要生成的表名 016 */ 017 private final List<String> tablePrefixs = new ArrayList<>(); 018 019 /** 020 * 需要生成的表名 021 */ 022 private final List<String> includeTables = new ArrayList<>(); 023 024 /** 025 * 需要排除的表名 026 */ 027 private final List<String> excludeTables = new ArrayList<>(); 028 029 030 /** 031 * 表的前缀 032 * 033 * @param prefixs 034 * @return 035 */ 036 public TableConfig tablePrefixs(String... prefixs) { 037 this.tablePrefixs.addAll(Arrays.asList(prefixs).stream() 038 .map(item -> { 039 if (item.toLowerCase().equals(item)) { 040 return item.toLowerCase(); 041 } 042 return item; 043 }) 044 .sorted(Comparator.comparing(i -> i.length())) 045 .sorted(Comparator.reverseOrder() 046 ).collect(Collectors.toList())); 047 return this; 048 } 049 050 /** 051 * 设置需要生成的表 052 * 053 * @param tables 054 * @return 055 */ 056 public TableConfig includeTable(String... tables) { 057 this.includeTables.addAll(Arrays.asList(tables)); 058 return this; 059 } 060 061 /** 062 * 设置需要不生成的表 063 * 064 * @param tables 065 * @return 066 */ 067 public TableConfig excludeTable(String... tables) { 068 this.excludeTables.addAll(Arrays.asList(tables)); 069 return this; 070 } 071}