#!/usr/bin/env python2.3
import pdb
from cStringIO import StringIO
from BookmarkContainer import BookmarkContainer
class Error(Exception):
pass
class BookmarkNotInCategoryError(Error):
def __init__(self, message):
self.message = message
class Category(BookmarkContainer):
def __init__(self, bookmarks=[], page_url='', name=''):
BookmarkContainer.__init__(self)
self.bookmarks = bookmarks
self.page_url = page_url
self._name = name
self._reindex()
# --- Property definition ---
def _get_name(self):
return self._name
def _set_name(self, val):
self._name = val
# TODO: add category changing code
name = property(_get_name, _set_name)
def __str__(self):
sio = StringIO()
sio.write("Category \n\tname: %s\n" % self.name)
sio.write("\tpage_url: %s\n" % self.page_url)
sio.write("\tBookmarks:\n")
for bm in self.bookmarks:
sio.write("\t\t%s, %s\n" % (bm.name, bm.url))
sio.write("------")
return sio.getvalue()
def locate_Bookmark(self, id=None, name=None, url=None):
'''returns bookmark with attribute matching id, name, and url
example: to find a bookmark where boomark.id = 42
_locate_Bookmark(id=42)
'''
for bm in self:
if id:
if bm.id == id:
return bm
if name:
if bm.name == name:
return bm
if url:
if bm.url == url:
return bm
raise BookmarkNotInCategoryError, 'bookmark not found'
syntax highlighted by Code2HTML, v. 0.9.1