question: public static LinkedList < MaryModule > modulesRequiredForProcessing ( MaryDataType sourceType , MaryDataType targetType , Locale locale , Voice voice ) { if ( ! registrationComplete ) throw new IllegalStateException ( "Cannot inquire about modules while registration is ongoing" ) ; if ( sourceType == null ) throw new NullPointerException ( "Received null source type" ) ; if ( targetType == null ) throw new NullPointerException ( "Received null target type" ) ; LinkedList < MaryDataType > seenTypes = new LinkedList < MaryDataType > ( ) ; seenTypes . add ( sourceType ) ; return modulesRequiredForProcessing ( sourceType , targetType , locale , voice , seenTypes ) ; }
target:  A method for determining the list of modules required to transform the given source data type into the requested target data type. If the voice given is not null, any preferred modules it may have are taken into account.