1 25 package org.archive.crawler.extractor; 26 27 import java.util.logging.Level ; 28 import java.util.logging.Logger ; 29 30 import org.archive.crawler.datamodel.CrawlURI; 31 import org.archive.crawler.framework.Processor; 32 33 50 public abstract class Extractor extends Processor { 51 private static final Logger logger = Logger 52 .getLogger(Extractor.class.getName()); 53 54 60 public Extractor(String name, String description) { 61 super(name, description); 62 } 64 65 public void innerProcess(CrawlURI curi) { 66 try { 67 extract(curi); 68 } catch (NullPointerException npe) { 69 curi.addAnnotation("err=" + npe.getClass().getName()); 71 curi.addLocalizedError(getName(), npe, ""); 72 logger.log(Level.WARNING, getName() + ": NullPointerException", 74 npe); 75 } catch (StackOverflowError soe) { 76 curi.addAnnotation("err=" + soe.getClass().getName()); 78 curi.addLocalizedError(getName(), soe, ""); 79 logger.log(Level.WARNING, getName() + ": StackOverflowError", soe); 81 } catch (java.nio.charset.CoderMalfunctionError cme) { 82 curi.addAnnotation("err=" + cme.getClass().getName()); 85 curi.addLocalizedError(getName(), cme, ""); logger.log(Level.WARNING, getName() + ": CoderMalfunctionError", 87 cme); 88 } 89 } 90 91 protected abstract void extract(CrawlURI curi); 92 } 93 | Popular Tags |