for (TextAnalyzer analyzer : analyzers) {
if (analyzer.processText(text) != Label.OK){
return analyzer.processText(text);
}
}
return Label.OK;
}
public abstract class KeywordAnalyzer implements TextAnalyzer {
protected abstract String[] getKeywords();
protected abstract Label getLabel();
@Override
public Label processText(String text) {
for (String keyword : getKeywords()) {
if (text.contains(keyword)){
return getLabel();
}
}
return Label.OK;
}
}
public class TooLongTextAnalyzer implements TextAnalyzer {
private int maxLength;
public TooLongTextAnalyzer(int maxLength) {
this.maxLength = maxLength;
}
public Label processText(String text) {
if (text.length() > maxLength) {
return getLabel();
} else {
return Label.OK;
}
}
public Label getLabel() {
return Label.TOO_LONG;
}
}
public 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;
}
@Override
public Label processText(String text) {
return super.processText(text);
}
}
public 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;
}
@Override
public Label processText(String text) {
return super.processText(text);
}
}
можете подсказать что тут возвращается? - return getLabel();
@Override
public Label processText(String text) {
for (String keyword : getKeywords()) {
if (text.contains(keyword)){
return getLabel();
}
}
return Label.OK;
А можешь то же самое только через pastebin.com?
Задача ад
Обсуждают сегодня