# Class: com.pnfsoftware.jeb.core.units.code.android.DexDecompilerExporter

Helper class used to decompile and export to `*.java` files all or a subset of classes or methods of a [Dex unit](IDexUnit). 

 Example: export all top\-level classes to an output folder: 

```

 IDexDecompilerUnit dexdec = ...; // retrieve from the current IRuntimeProject
 File outdir = ...;
 DexDecompilerExporter exp = dexdec.getExporter();
 exp.setOutputFolder(outdir, false);
 exp.setMethodTimeout(60_000L);  // safety
 exp.setTotalTimeout(15 * 60_000L);  // safety
 exp.setCallback(new ProgressCallbackAdapter() {
     @Override
     public void message(String msg) {
         System.out.println(msg);
     }
 });
 boolean success = exp.processTopLevelClasses();
 System.out.println("Errors: " + exp.getErrors());
 
```

## Constructor: DexDecompilerExporter
- parameter: `decompiler`, type: `com.pnfsoftware.jeb.core.units.code.android.IDexDecompilerUnit`

Description: Create a Dex decompiler exporter.
parameter: decompiler: Dex decompiler unit

## Protected Method: customizeOptions
- parameter: `decompilingClasses`, type: `boolean`
- parameter: `optbld`, type: `com.pnfsoftware.jeb.core.units.code.DecompilationOptions.Builder`


## Protected Method: generateClassFileName
- parameter: `csig`, type: `java.lang.String`
- return type: `java.lang.String`


## Protected Method: generateMethodFileName
- parameter: `msig`, type: `java.lang.String`
- return type: `java.lang.String`


## Method: process
- return type: `boolean`


## Method: setSignaturePattern
- parameter: `pattern`, type: `java.util.regex.Pattern`

Description: The strings that will be provided to the matcher are jvm \(canonical\) class or method signatures, e.g. `Lcom/abc/Foo;` or `Lcom/foo/Bar;->m1([I)Ljava/lang/String;`.

