private void getSchemata2(Set<JMFSchema> accum, boolean addThis) throws JMFUninitializedAccessException, JMFSchemaViolationException, JMFModelNotImplementedException, JMFMessageCorruptionException {

    if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.entry(this, tc, "getSchemata2", new Object[]{accum, Boolean.valueOf(addThis)});

    if (addThis) {
      accum.add(schema);
    }

    if (map != null) {
      // If the message is assembled, we find the JSDynamic and JSVariant
      // fields defined in the map.
      for (int i = 0; i < fields.length; i++) {
        if (map.fields[i] != null) {
          JSField field = fields[i];

          if (field instanceof JSDynamic) {
            getSchemata3(accum, true, getInternal(i));
          }
          else if (field instanceof JSVariant) {
            getSchemata3(accum, false, getInternal(i));
          }
        }
      }
    }
    else {
      // For unassembled messages we find the JSDynamic and JSVariant
      // fields that have values in the cache
      for (int i = 0; i < fields.length; i++) {
        if (cache[i] != null) {
          if (fields[i] instanceof JSDynamic) {
            getSchemata3(accum, true, cache[i]);
          }
          else if (fields[i] instanceof JSVariant) {
            getSchemata3(accum, false, cache[i]);
          }
        }
      }
    }
    if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "getSchemata2");
  }
private void getSchemata2 ( Set < JMFSchema > accum , boolean addThis ) throws JMFUninitializedAccessException , JMFSchemaViolationException , JMFModelNotImplementedException , JMFMessageCorruptionException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) JmfTr . entry ( this , tc , "getSchemata2" , new Object [ ] { accum , Boolean . valueOf ( addThis ) } ) ; if ( addThis ) { accum . add ( schema ) ; } if ( map != null ) { for ( int i = 0 ; i < fields . length ; i ++ ) { if ( map . fields [ i ] != null ) { JSField field = fields [ i ] ; if ( field instanceof JSDynamic ) { getSchemata3 ( accum , true , getInternal ( i ) ) ; } else if ( field instanceof JSVariant ) { getSchemata3 ( accum , false , getInternal ( i ) ) ; } } } } else { for ( int i = 0 ; i < fields . length ; i ++ ) { if ( cache [ i ] != null ) { if ( fields [ i ] instanceof JSDynamic ) { getSchemata3 ( accum , true , cache [ i ] ) ; } else if ( fields [ i ] instanceof JSVariant ) { getSchemata3 ( accum , false , cache [ i ] ) ; } } } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) JmfTr . exit ( this , tc , "getSchemata2" ) ; }
concurrency issues. Only called by getSchemata() & getSchemata3().