> PredicatedList would just take a Predicate in its constructor, and > anytime someone adds an element it throws an exception if the > predicate's evalute method returns false on the element. Then when > TypedList extends PredicatedList it becomes a very small class that > simply constructs a TypeCheckPredicate and passes it to its superclass.
I wouldn't even have a subclass for TypedList; I'd just put a static convience method in the TypeCheckPredicate class: static List getTypeCheckedList(List list, Class type) { return new PredicateList(list, new TypeCheckPredicate(type)); } -Paul -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>