This "pseudo-header" hierarchy is maintained separately from the actual CLucene headers because a few of CLucene's headers need to be manually modified in order for SWIG to process them.  When those manual modifications were supplied (and the results imported as .i files from the pyclene tree instead of .h files from the CLucene tree), SWIG was unable to track the inheritance relationships between some classes from the original headers and classes from the modified headers.  Other problems also arose; eventually I decided it would be easier to define everything explicitly than deal with SWIG's foibles.