Mercurial > eagle-eye
view pyikriam/lazy/www/work/__init__.py @ 68:4ba1e981716d
merged kevint and hychen's work.
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Wed, 22 Oct 2008 06:24:39 +0800 |
parents | a4c364888197 |
children | 60c4b4b78a01 |
line wrap: on
line source
from lazy.www.work.fetch import Fetcher from lazy.www.work.find import Finder from lazy.www.core import SemiProduct class WorkFlow: serial_number = 0 working_product = None worker = None def __init__(self, worker): self.set_worker(worker) def set_worker(self, worker): self.worker = worker if self.worker.working_product is None: self.working_product = SemiProduct() else: self.working_product = self.worker.working_product def get_content(self): return self.working_product.content def change_worker(self, new_worker): self.serial_number += 1 self.worker = new_worker def is_fetcher(self, obj): if obj is not None: return True def get(self, data = {} ): if not self.is_fetcher(self.worker) : self.change_worker( Fetcher(self.working_product) ) self.working_product.content = self.worker.get(data) return self def post(self, data = {} ): if not self.is_fetcher(self.worker): self.change_worker( Fetcher(self.working_product) ) self.working_product.content = self.worker.post(data) return self def is_finder(self, obj): if obj is not None: return True def find(self, express): #if not self.is_finder(self.worker): self.worker = Finder(self.working_product) self.working_product.content = self.worker.find(express) return self