1 25 package org.archive.crawler.admin; 26 27 import java.util.ArrayList ; 28 import java.util.HashMap ; 29 import java.util.List ; 30 import java.util.logging.Level ; 31 32 import org.archive.crawler.settings.ValueErrorHandler; 33 import org.archive.crawler.settings.Constraint.FailedCheck; 34 35 36 46 public class CrawlJobErrorHandler implements ValueErrorHandler { 47 48 HashMap <String ,FailedCheck> errors = null; 49 Level level = Level.INFO; 50 Level highestEncounteredLevel = Level.OFF; 51 52 public CrawlJobErrorHandler(){ 53 errors = new HashMap <String ,FailedCheck>(); 54 } 55 56 public CrawlJobErrorHandler(Level level){ 57 this(); 58 this.level = level; 59 } 60 61 public void handleValueError(FailedCheck error) { 62 String key = error.getOwner().getAbsoluteName() + 63 "/" + error.getDefinition().getName(); 64 errors.put(key,error); 65 if(error.getLevel().intValue()>highestEncounteredLevel.intValue()){ 66 highestEncounteredLevel = error.getLevel(); 67 } 68 } 69 70 79 public FailedCheck getError(String absoluteName){ 80 return getError(absoluteName,level); 81 } 82 83 93 public FailedCheck getError(String absoluteName, Level level) { 94 FailedCheck fc = (FailedCheck) errors.get(absoluteName); 95 if (fc != null && fc.getLevel().intValue() >= level.intValue()) { 96 return fc; 97 } 98 return null; 99 } 100 101 106 public boolean hasError(){ 107 return hasError(level); 108 } 109 110 116 public boolean hasError(Level level){ 117 return highestEncounteredLevel.intValue() >= level.intValue(); 118 } 119 120 123 public Level getLevel() { 124 return level; 125 } 126 127 130 public void setLevel(Level level) { 131 this.level = level; 132 } 133 134 139 public void clearErrors(){ 140 errors = new HashMap <String ,FailedCheck>(); 141 } 142 143 155 public List getErrors(){ 156 return getErrors(level); 157 } 158 159 173 public List getErrors(Level level){ 174 ArrayList <FailedCheck> list = new ArrayList <FailedCheck>(errors.size()); 175 for (FailedCheck fc: errors.values()) { 176 if(fc.getLevel().intValue() >= level.intValue()){ 177 list.add(fc); 178 } 179 } 180 return list; 181 } 182 } 183 | Popular Tags |