code: static void interceptWritingFiles( Properties props, File outputDirectory ) throws IOException {
  
  		if( outputDirectory == null )
  			return;
  
  		Logger logger = Logger.getLogger( UserDataHelpers.class.getName());
  		Set<String> keys = props.stringPropertyNames();
  		for( final String key : keys ) {
  			if( ! key.startsWith( ENCODE_FILE_CONTENT_PREFIX ))
  				continue;
  
  			// Get the file content
  			String encodedFileContent = props.getProperty( key );
  			String realKey = key.substring( ENCODE_FILE_CONTENT_PREFIX.length());
  			if( encodedFileContent == null ) {
  				logger.fine( "No file content was provided for " + realKey + ". Skipping it..." );
  				continue;
  			}
  
  			byte[] fileContent = decodeFromBase64( encodedFileContent );
  
  			// Write it to the disk
  			String targetFile = props.getProperty( realKey );
  			if( targetFile == null ) {
  				logger.fine( "No property named " + realKey + " was found. Skipping it..." );
  				continue;
  			}
  
  			Utils.createDirectory( outputDirectory );
  			File output = new File( outputDirectory, new File( targetFile ).getName());
  			Utils.copyStream( new ByteArrayInputStream( fileContent ), output );
  			logger.finer( "Writing " + key + " from user data in " + output.getAbsolutePath());
  
  			// Update the properties
  			props.remove( key );
  			props.setProperty( realKey, output.getAbsolutePath());
  		}
  	}
docs: Intercepts the properties and writes file contents.
  @param props non-null properties
  @param outputDirectory a directory into which files should be written
  <p>
  If null, files sent with {@link #ENCODE_FILE_CONTENT_PREFIX} will not be written.
  </p>
  
  @throws IOException