[jdom-interest] Bit masks in ContentFilter

Bradley S. Huffman hip at a.cs.okstate.edu
Fri Apr 12 14:39:15 PDT 2002


I think that the javadoc example using bit-masking should be taken out
for the reasons below.  The prefered way should be to create a new
ContentFilter then use set*Visiable methods to modify it. Come to think of
it, I'd probably remove two of the constructors (leaving just the no-arg
constructor).

Originally all the bit-masking stuff was private, then I added getFilterMask
and setFilterMask with the idea that another filter or piece of code would
want fast access to the mask without having to use a bunch of 
is*Visiable-style methods. I'd leave them public.

Brad

Elliotte Rusty Harold writes:

> The bitmasking approach of ContentFilter strikes me as very un-OO. Even 
> if we use it internally for performance, I'd prefer it to be completely 
> private. i.e. all the details of the masking would be completely private 
> or at worst package-private. The clean method interfaces should be 
> enough. Bitmasking and the like is an implementation detail the client 
> programmer should not concern themselves with.
> 
> As a side note, I've been seeing in my classes lately that my students 
> are less and less likely to be familiar with bitwise operators of all 
> kinds. This was important stuff in the C-centric world of a decade ago, 
> but now it's mostly arcana familar only to old farts like me. Yes, it 
> exists in some classes in the JDK such as ImageObserver, but these are 
> all old classes written way back in Java 1.0 before the programmers at 
> Sun had fuly transitioned to the Java way of doing things. I classify 
> this stuff along with named constants in lower case as vestigial relics 
> of C.
>
> Since the ContentFilter class is very new, we probably wouldn't hurt 
> anyone too badly by removing public access to these fields, and we'd 
> simplify its API considerably going forward without losing any 
> functionality. Indeed, we'd be opening up the possibility to discover 
> newer, faster implementations in the future.



More information about the jdom-interest mailing list