}
// If we are talking v2, userInformationField may contain a character Set Negotiation
// field, if v3, otherInfo may contain a charset/language negotiation feature.
if ( init_request.userInformationField != null ) {
OIDRegisterEntry ent = reg.lookupByOID(init_request.userInformationField.direct_reference);
if ( ent != null )
log.debug("Init Request contains userInformationField oid="+ent.getName());
else
log.debug("Unkown external in userInformationField");
// The OID for the external should be found in userInformationField.direct_reference
}
if ( init_request.otherInfo != null ) {
log.debug("Init Request contains otherInfo entries");
for ( Iterator other_info_enum = init_request.otherInfo.iterator(); other_info_enum.hasNext(); )
{
log.debug("Processing otherInfo entry...");
// Process the external at other_info_enum.nextElement();
OtherInformationItem43_type oit = (OtherInformationItem43_type)(other_info_enum.next());
log.debug("Processing OtherInformationItem43_type");
switch ( oit.information.which )
{
case information_inline44_type.externallydefinedinfo_CID:
EXTERNAL_type et = (EXTERNAL_type)(oit.information.o);
if ( et.direct_reference != null )
{
OIDRegisterEntry ent = reg.lookupByOID(et.direct_reference);
log.debug("External with direct reference, oid="+ent.getName());
// Are we dealing with character set negotiation.
if ( ent.getName().equals("z_charset_neg_3") )
handleNLSNegotiation((CharSetandLanguageNegotiation_type)(et.encoding.o));
}
break;
default:
log.debug("Currently unhandled OtherInformationType");