KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > javacoding > jspider > core > task > work > DecideOnParsingTask


1 package net.javacoding.jspider.core.task.work;
2
3 import net.javacoding.jspider.api.event.resource.ResourceIgnoredForParsingEvent;
4 import net.javacoding.jspider.api.model.Decision;
5 import net.javacoding.jspider.core.SpiderContext;
6 import net.javacoding.jspider.core.util.URLUtil;
7 import net.javacoding.jspider.core.storage.Storage;
8 import net.javacoding.jspider.core.task.WorkerTask;
9
10 import java.net.URL JavaDoc;
11
12 public class DecideOnParsingTask extends BaseWorkerTaskImpl {
13
14     protected URL JavaDoc url;
15
16     public DecideOnParsingTask(SpiderContext context, URL JavaDoc url ) {
17         super(context, WorkerTask.WORKERTASK_THINKERTASK);
18         this.url = url;
19     }
20
21     public void prepare() {
22     }
23
24     public void execute() {
25         Storage storage = context.getStorage();
26
27         Decision parseDecision = context.getSiteParserRules(storage.getSiteDAO().find(URLUtil.getSiteURL(url))).applyRules(context, null, url);
28         storage.getDecisionDAO().saveParseDecision(storage.getResourceDAO().getResource(url), parseDecision);
29
30         if (parseDecision.getDecision() == Decision.RULE_ACCEPT || parseDecision.getDecision() == Decision.RULE_DONTCARE) {
31             context.getAgent().scheduleForParsing(url);
32         } else {
33             storage.getResourceDAO().setIgnoredForParsing(url);
34             context.getEventDispatcher().dispatch(new ResourceIgnoredForParsingEvent(storage.getResourceDAO().getResource(url)));
35         }
36     }
37
38 }
39
Popular Tags