Feature.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.boman.system.common;
  2. import com.google.common.collect.Lists;
  3. import org.apache.commons.collections4.keyvalue.DefaultMapEntry;
  4. import org.springframework.beans.factory.InitializingBean;
  5. import java.util.Collection;
  6. import java.util.Map;
  7. import java.util.function.BiPredicate;
  8. /**
  9. * @author shiqian
  10. * @description
  11. * @date 2021年03月22日 10:42
  12. **/
  13. public abstract class Feature implements InitializingBean {
  14. public static final BiPredicate<String, String> matchAll = (tableName, actionName) -> {
  15. return true;
  16. };
  17. private String name;
  18. private String description;
  19. private boolean isSystem;
  20. private Collection<Map.Entry<BiPredicate<String, String>, Validator>> validates;
  21. private Collection<Map.Entry<BiPredicate<String, String>, Filter>> filters;
  22. protected Feature() {
  23. this.validates = Lists.newArrayList();
  24. this.filters = Lists.newArrayList();
  25. this.isSystem = false;
  26. }
  27. protected Feature(String name, String description, boolean isSystem) {
  28. this();
  29. this.name = name;
  30. this.description = description;
  31. this.isSystem = isSystem;
  32. }
  33. @Override
  34. public final void afterPropertiesSet() throws Exception {
  35. this.initialization();
  36. }
  37. protected abstract void initialization();
  38. protected final void addValidator(Validator validator, BiPredicate<String, String> condition) {
  39. this.validates.add(new DefaultMapEntry(condition, validator));
  40. }
  41. protected final void addFilter(Filter filter, BiPredicate<String, String> condition) {
  42. this.filters.add(new DefaultMapEntry(condition, filter));
  43. }
  44. protected final void addGlobalValidator(Validator validator) {
  45. this.addValidator(validator, matchAll);
  46. }
  47. protected final void addGlobalFilter(Filter filter) {
  48. this.addFilter(filter, matchAll);
  49. }
  50. public String getName() {
  51. return this.name;
  52. }
  53. protected void setName(final String name) {
  54. this.name = name;
  55. }
  56. public String getDescription() {
  57. return this.description;
  58. }
  59. protected void setDescription(final String description) {
  60. this.description = description;
  61. }
  62. public boolean isSystem() {
  63. return this.isSystem;
  64. }
  65. protected void setSystem(final boolean isSystem) {
  66. this.isSystem = isSystem;
  67. }
  68. public Collection<Map.Entry<BiPredicate<String, String>, Validator>> getValidates() {
  69. return this.validates;
  70. }
  71. public Collection<Map.Entry<BiPredicate<String, String>, Filter>> getFilters() {
  72. return this.filters;
  73. }
  74. }