1 25 package org.archive.crawler.deciderules; 26 27 import org.archive.crawler.settings.SimpleType; 28 29 30 36 public class ConfiguredDecideRule extends DecideRule { 37 38 private static final long serialVersionUID = -7084695808452312555L; 39 40 public final static String ATTR_DECISION = "decision"; 41 public final static String [] ALLOWED_TYPES = new String [] {ACCEPT, REJECT}; 42 43 public ConfiguredDecideRule(String name) { 44 super(name); 45 setDescription("FRAMEWORK: Should not appear as choice"); 46 addElementToDefinition(new SimpleType(ATTR_DECISION, 47 "Decision applied if this rule is triggered. " + 48 "Otherwise PASS.", ACCEPT, ALLOWED_TYPES)); 49 } 50 51 public Object decisionFor(Object object) { 52 return singlePossibleNonPassDecision(object); 53 } 54 55 public Object singlePossibleNonPassDecision(Object object) { 56 Object decision = getUncheckedAttribute(object, ATTR_DECISION); 57 Object result = PASS; 60 for (int i = 0; i < ALLOWED_TYPES.length; i++) { 61 if (ALLOWED_TYPES[i] == decision || 62 ALLOWED_TYPES[i].equals(decision)) { 63 result = ALLOWED_TYPES[i]; 64 break; 65 } 66 } 67 return result; 68 } 69 } 70 | Popular Tags |