1 24 package org.archive.crawler.scope; 25 26 import java.util.ArrayList ; 27 import java.util.Iterator ; 28 import java.util.List ; 29 30 import org.archive.crawler.datamodel.CrawlURI; 31 import org.archive.net.UURI; 32 33 41 public class SeedCachingScope extends ClassicScope { 42 43 private static final long serialVersionUID = 300230673616424926L; 44 45 List <UURI> seeds; 48 49 public SeedCachingScope(String name) { 50 super(name); 51 } 52 53 56 public boolean addSeed(CrawlURI curi) { 57 if (super.addSeed(curi) == false) { 58 return false; 60 } 61 List <UURI> newSeeds = new ArrayList <UURI>(seeds); 63 newSeeds.add(curi.getUURI()); 64 seeds = newSeeds; 65 return true; 66 } 67 68 71 public synchronized void refreshSeeds() { 72 super.refreshSeeds(); 73 seeds = null; 74 fillSeedsCache(); 75 } 76 77 80 public Iterator <UURI> seedsIterator() { 81 fillSeedsCache(); 82 return seeds.iterator(); 83 } 84 85 88 protected synchronized void fillSeedsCache() { 89 if (seeds==null) { 90 seeds = new ArrayList <UURI>(); 91 Iterator <UURI> iter = super.seedsIterator(); 92 while(iter.hasNext()) { 93 seeds.add(iter.next()); 94 } 95 } 96 } 97 } 98 | Popular Tags |