if (encodingName.equals ("UTF-16") || encodingName.equals ("ISO-10646-UCS-2"))
if (encodingName.equals("UTF-16") || encodingName.equals("ISO-10646-UCS-2")) {
    private void setupDecoding (String encodingName)    throws SAXException, IOException    {	encodingName = encodingName.toUpperCase ();	// ENCODING_EXTERNAL indicates an encoding that wasn't	// autodetected ... we can use builtin decoders, or	// ones from the JVM (InputStreamReader).	// Otherwise we can only tweak what was autodetected, and	// only for single byte (ASCII derived) builtin encodings.	// ASCII-derived encodings	if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL) {	    if (encodingName.equals ("ISO-8859-1")		    || encodingName.equals ("8859_1")		    || encodingName.equals ("ISO8859_1")	      ) {		encoding = ENCODING_ISO_8859_1;		return;	    } else if (encodingName.equals ("US-ASCII")			|| encodingName.equals ("ASCII")) {		encoding = ENCODING_ASCII;		return;	    } else if (encodingName.equals ("UTF-8")			|| encodingName.equals ("UTF8")) {		encoding = ENCODING_UTF_8;		return;	    } else if (encoding != ENCODING_EXTERNAL) {		// used to start with a new reader ...		throw new UnsupportedEncodingException (encodingName);	    }	    // else fallthrough ...	    // it's ASCII-ish and something other than a builtin	}	// Unicode and such	if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21) {	    if (!(encodingName.equals ("ISO-10646-UCS-2")		    || encodingName.equals ("UTF-16")		    || encodingName.equals ("UTF-16BE")		    || encodingName.equals ("UTF-16LE")))		error ("unsupported Unicode encoding",		       encodingName,		       "UTF-16");	    return;	}	// four byte encodings	if (encoding == ENCODING_UCS_4_1234		|| encoding == ENCODING_UCS_4_4321		|| encoding == ENCODING_UCS_4_2143		|| encoding == ENCODING_UCS_4_3412) {	    // Strictly:  "UCS-4" == "UTF-32BE"; also, "UTF-32LE" exists	    if (!encodingName.equals ("ISO-10646-UCS-4"))		error ("unsupported 32-bit encoding",		       encodingName,		       "ISO-10646-UCS-4");	    return;	}	// assert encoding == ENCODING_EXTERNAL	// if (encoding != ENCODING_EXTERNAL)	//     throw new RuntimeException ("encoding = " + encoding);	if (encodingName.equals ("UTF-16BE")) {	    encoding = ENCODING_UCS_2_12;	    return;	}	if (encodingName.equals ("UTF-16LE")) {	    encoding = ENCODING_UCS_2_21;	    return;	}	// We couldn't use the builtin decoders at all.  But we can try to	// create a reader, since we haven't messed up buffering.  Tweak	// the encoding name if necessary.	if (encodingName.equals ("UTF-16")		|| encodingName.equals ("ISO-10646-UCS-2"))	    encodingName = "Unicode";	// Ignoring all the EBCDIC aliases here	reader = new InputStreamReader (is, encodingName);	sourceType = INPUT_READER;    }