in src/com/amazon/ion/impl/SymbolTableReader.java [1286:1331]
public boolean isInStruct()
{
switch (_current_state)
{
case S_STRUCT:
case S_IN_IMPORTS:
case S_IMPORT_STRUCT:
case S_IN_SYMBOLS:
case S_SYMBOL:
// these values are either not contained, or
// contained in a list. So we aren't in a
// struct if they're pending.
return false;
case S_IN_STRUCT:
case S_NAME:
case S_VERSION:
case S_MAX_ID:
case S_IMPORT_LIST:
case S_IN_IMPORT_STRUCT:
case S_IMPORT_NAME:
case S_IMPORT_VERSION:
case S_IMPORT_MAX_ID:
case S_AFTER_IMPORT_LIST:
case S_SYMBOL_LIST:
// the values above are all members
// of a struct, so we must be in a
// struct to have them pending
return true;
case S_IMPORT_STRUCT_CLOSE:
case S_STRUCT_CLOSE:
// if we're closing a struct we're in a struct
return true;
case S_IMPORT_LIST_CLOSE:
case S_SYMBOL_LIST_CLOSE:
case S_EOF:
// if we're closing a list we in a list, not a struct
// and EOF is not in a struct
return false;
default:
throw new IonException("Internal error: UnifiedSymbolTableReader is in an unrecognized state: "+_current_state);
}
}