this.obfuscator.obfuscate(device, sourceFile, destFile, this.preserveClasses, bootPath );
int maxIndex = this.obfuscators.length - 1; for (int i=0; i <= maxIndex ; i++ ) { Obfuscator obfuscator = this.obfuscators[i]; obfuscator.obfuscate(device, sourceFile, destFile, this.preserveClasses, bootPath ); if ( i != maxIndex ) { sourceFile = destFile; destFile = new File( this.buildSetting.getWorkDir().getAbsolutePath() + File.separatorChar + "dest" + (i + 1) + ".jar"); } }
	private void obfuscate( Device device ) {		System.out.println("obfuscating for device [" + device.getIdentifier() + "].");		Path bootPath;		if (device.isMidp1()) {			bootPath = this.midp1BootClassPath;		} else {			bootPath = this.midp2BootClassPath;		}		File sourceFile = new File( this.buildSetting.getWorkDir().getAbsolutePath()				+ File.separatorChar + "source.jar");		//jar classes dir:		//long time = System.currentTimeMillis();		try {			JarUtil.jar( new File( device.getClassesDir()), sourceFile, false );		} catch (IOException e) {			throw new BuildException("Unable to prepare the obfuscation-jar: " + e.getMessage(), e );		}		//System.out.println("Jaring took " + ( System.currentTimeMillis() - time) + " ms.");		File destFile = new File( this.buildSetting.getWorkDir().getAbsolutePath()				+ File.separatorChar + "dest.jar");		this.obfuscator.obfuscate(device, sourceFile, destFile, this.preserveClasses, bootPath );		//time = System.currentTimeMillis();		//unjar destFile to build/obfuscated:		try {			String targetDir = device.getBaseDir() + File.separatorChar + "obfuscated";			device.setClassesDir(targetDir);			JarUtil.unjar( destFile, new File( targetDir )   );		} catch (IOException e) {			throw new BuildException("Unable to prepare the obfuscation-jar: " + e.getMessage(), e );		}	}