Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Label checkLabels(TextAnalyzer[] analyzers, String text) {
- Label currentLabel;
- for (TextAnalyzer analyzer : analyzers) {
- currentLabel = analyzer.processText(text);
- if (currentLabel != Label.OK) {
- return currentLabel;
- }
- }
- return Label.OK;
- }
- abstract class KeywordAnalyzer implements TextAnalyzer {
- abstract protected String[] getKeywords();
- abstract protected Label getLabel();
- @Override
- public Label processText(String text) {
- for (String keyword : getKeywords()) {
- if (text.contains(keyword)) {
- return getLabel();
- }
- }
- return Label.OK;
- }
- }
- class SpamAnalyzer extends KeywordAnalyzer {
- private String[] keywords;
- public SpamAnalyzer(String[] keywords) {
- this.keywords = keywords;
- }
- @Override
- protected String[] getKeywords() {
- return keywords;
- }
- @Override
- protected Label getLabel() {
- return Label.SPAM;
- }
- }
- class NegativeTextAnalyzer extends KeywordAnalyzer {
- private String[] keywords;
- public NegativeTextAnalyzer() {
- this.keywords = new String[]{":(", "=(", ":|"};
- }
- @Override
- protected String[] getKeywords() {
- return keywords;
- }
- @Override
- protected Label getLabel() {
- return Label.NEGATIVE_TEXT;
- }
- }
- class TooLongTextAnalyzer implements TextAnalyzer {
- private int maxLength;
- public TooLongTextAnalyzer(int maxLength) {
- this.maxLength = maxLength;
- }
- @Override
- public Label processText(String text) {
- if (text.length() > maxLength) {
- return Label.TOO_LONG;
- }
- return Label.OK;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement