You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by th...@apache.org on 2008/09/16 02:49:15 UTC

svn commit: r695704 - /labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java

Author: thorsten
Date: Mon Sep 15 17:49:14 2008
New Revision: 695704

URL: http://svn.apache.org/viewvc?rev=695704&view=rev
Log:
Extracting abstract worker to reuse common methods

Added:
    labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java   (with props)

Added: labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java
URL: http://svn.apache.org/viewvc/labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java?rev=695704&view=auto
==============================================================================
--- labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java (added)
+++ labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java Mon Sep 15 17:49:14 2008
@@ -0,0 +1,101 @@
+package org.apache.droids;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.droids.api.Droid;
+import org.apache.droids.api.Queue;
+import org.apache.droids.api.Task;
+import org.apache.droids.api.Worker;
+import org.apache.droids.exception.DroidsException;
+import org.apache.droids.helper.factories.HandlerFactory;
+import org.apache.droids.helper.factories.ParserFactory;
+import org.apache.droids.helper.factories.ProtocolFactory;
+import org.apache.droids.helper.factories.URLFiltersFactory;
+
+public abstract class AbstractWorker extends Thread implements Worker {
+
+  protected final Log log = LogFactory.getLog(this.getClass().getCanonicalName());
+
+  private Queue queue;
+
+  private Droid droid;
+
+  private int depth;
+
+  public int getDepth() {
+    return depth;
+  }
+
+  public long getId() {
+    return super.getId();
+  }
+
+  public void setDepth(int x) {
+    depth = x;
+  }
+
+  private ProtocolFactory protocolFactory;
+
+  private ParserFactory parserFactory;
+
+  private URLFiltersFactory filtersFactory;
+
+  private HandlerFactory handlerFactory;
+
+  public void setDroid(Droid droid) throws DroidsException {
+    this.droid = droid;
+    protocolFactory = droid.getCore().getProtocolFactory();
+    parserFactory = droid.getCore().getParserFactory();
+    filtersFactory = droid.getCore().getFiltersFactory();
+    handlerFactory = droid.getCore().getHandlerFactory();
+  }
+
+  private Task link;
+
+  public void setQueue(Queue queue) {
+    synchronized (this) {
+      this.queue = queue;
+      setLink(getQueue().next());
+      if (link != null) {
+        setDepth(link.getDepth());
+      }
+    }
+  }
+
+  private void setLink(Task task) {
+    link=task;
+  }
+
+  public Queue getQueue() {
+    synchronized (this) {
+      return queue;
+    }
+  }
+
+  public abstract void run();
+
+  public URLFiltersFactory getFiltersFactory() {
+    return filtersFactory;
+  }
+
+  public HandlerFactory getHandlerFactory() {
+    return handlerFactory;
+  }
+
+  public Task getLink() {
+    return link;
+  }
+
+  public ParserFactory getParserFactory() {
+    return parserFactory;
+  }
+
+  public ProtocolFactory getProtocolFactory() {
+    return protocolFactory;
+  }
+
+  public Droid getDroid() {
+    return droid;
+  }
+
+}

Propchange: labs/droids/trunk/src/core/java/org/apache/droids/AbstractWorker.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org