Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. public Label checkLabels(TextAnalyzer[] analyzers, String text) {
  2.     Label currentLabel;
  3.     for (TextAnalyzer analyzer : analyzers) {
  4.         currentLabel = analyzer.processText(text);
  5.         if (currentLabel != Label.OK) {
  6.             return currentLabel;
  7.         }
  8.     }
  9.     return Label.OK;
  10. }
  11.  
  12. abstract class KeywordAnalyzer implements TextAnalyzer {
  13.     abstract protected String[] getKeywords();
  14.     abstract protected Label getLabel();
  15.  
  16.     @Override
  17.     public Label processText(String text) {
  18.         for (String keyword : getKeywords()) {
  19.             if (text.contains(keyword)) {
  20.                 return getLabel();
  21.             }
  22.         }
  23.         return Label.OK;
  24.     }
  25. }
  26.  
  27. class SpamAnalyzer extends KeywordAnalyzer {
  28.     private String[] keywords;
  29.  
  30.     public SpamAnalyzer(String[] keywords) {
  31.         this.keywords = keywords;
  32.     }
  33.  
  34.     @Override
  35.     protected String[] getKeywords() {
  36.         return keywords;
  37.     }
  38.  
  39.     @Override
  40.     protected Label getLabel() {
  41.         return Label.SPAM;
  42.     }
  43. }
  44.  
  45. class NegativeTextAnalyzer extends KeywordAnalyzer {
  46.     private String[] keywords;
  47.  
  48.     public NegativeTextAnalyzer() {
  49.         this.keywords = new String[]{":(", "=(", ":|"};
  50.     }
  51.  
  52.     @Override
  53.     protected String[] getKeywords() {
  54.         return keywords;
  55.     }
  56.  
  57.     @Override
  58.     protected Label getLabel() {
  59.         return Label.NEGATIVE_TEXT;
  60.     }
  61. }
  62.  
  63. class TooLongTextAnalyzer implements TextAnalyzer {
  64.     private int maxLength;
  65.  
  66.     public TooLongTextAnalyzer(int maxLength) {
  67.         this.maxLength = maxLength;
  68.     }
  69.  
  70.     @Override
  71.     public Label processText(String text) {
  72.         if (text.length() > maxLength) {
  73.             return Label.TOO_LONG;
  74.         }
  75.         return Label.OK;
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement