code: protected String clientRegisterSyntheticModules() {
  		final String methodName = "clientRegisterSyntheticModules"; //$NON-NLS-1$
  		boolean traceLogging = log.isLoggable(Level.FINER);
  		if (traceLogging) {
  			log.entering(sourceClass, methodName);
  		}
  		StringBuffer sb = new StringBuffer();
  		Map<String, Integer> map = getModuleIdMap();
  		if (map != null && getModuleIdRegFunctionName() != null) {
  			Collection<String> names = getSyntheticModuleNames();
  			if (names != null && names.size() > 0) {
  				// register the text plugin name (combo/text) and name id with the client
  				sb.append(getModuleIdRegFunctionName()).append("([[["); //$NON-NLS-1$
  				int i = 0;
  				for (String name : names) {
  					if (map.get(name) != null) {
  						sb.append(i++==0 ?"":",").append("\"").append(name).append("\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
  					}
  				}
  				sb.append("]],[["); //$NON-NLS-1$
  				i = 0;
  				for (String name : names) {
  					Integer id = map.get(name);
  					if (id != null) {
  						sb.append(i++==0?"":",").append(id.intValue()); //$NON-NLS-1$ //$NON-NLS-2$
  					}
  				}
  				sb.append("]]]);"); //$NON-NLS-1$
  			}
  		}
  		if (traceLogging) {
  			log.exiting(sourceClass, methodName, sb.toString());
  		}
  		return sb.toString();
  	}
docs: Returns the JavaScript code for calling the client-side module name id registration function
  to register name ids for the transport synthetic modules.
  
  @return the registration JavaScript or an empty string if no synthetic modules.