3.12 Get Filters

<..insert sax filters..>
 for( int i=1; i<className.length; i++ ){
    argTypes = new Class [3];
    argTypes[0] = PrintWriter.class;
    argTypes[1] = PrintWriter.class;
    argTypes[2] = boolean.class;
    parmValues = new Object[3];
    parmValues[0] = out;
    parmValues[1] = Xtpipes.logWriter;
    parmValues[2] = (Object) Xtpipes.trace;
    errMsg = "Class.forName( " + className[i].trim() + ") " ;
    cls = Class.forName( className[i].trim() );
    errMsg = "get-constructor "
             + className[i].trim()
             + "( PrintWriter, PrintWriter, boolean ) " ;
    c = cls.getConstructor( argTypes );
    errMsg = "get-object "
             + className[i].trim()
             + "( PrintWriter, PrintWriter, boolean ) " ;
    if( (cls.getModifiers() % 2) != 1 ){
       errMsg += "; class not defined to be public. ";
    }
    XMLFilter filter = (XMLFilter) c.newInstance( parmValues );
    errMsg = "set-parent "
             +  className[i].trim()
             + "( PrintWriter, PrintWriter, boolean ) " ;
    filter.setParent(saxReader);
    saxReader = filter;
 }
 -_-_-

The filters are assumed to have a tri-parameter constructors which get an output stream for first arguments, log stream for second argument, and a trace boolean value for third argument.