private void registerListType ( PContainer containerType ) { PDescriptor itemType = containerType . itemDescriptor ( ) ; if ( itemType . getType ( ) == PType . MAP || itemType . getType ( ) == PType . LIST || itemType . getType ( ) == PType . SET ) { registerListType ( ( PContainer ) itemType ) ; } else if ( itemType . getType ( ) == PType . ENUM || itemType . getType ( ) == PType . MESSAGE ) { registerRecursively ( ( PDeclaredDescriptor < ? > ) itemType ) ; } if ( containerType instanceof PMap ) { PDescriptor keyType = ( ( PMap ) containerType ) . keyDescriptor ( ) ; if ( keyType . getType ( ) == PType . ENUM || keyType . getType ( ) == PType . MESSAGE ) { registerRecursively ( ( PDeclaredDescriptor < ? > ) keyType ) ; } } // Else ignore. }
Register a list type part of recursive registering .