diff options
Diffstat (limited to 'src/proguard/DataEntryWriterFactory.java')
-rw-r--r-- | src/proguard/DataEntryWriterFactory.java | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/proguard/DataEntryWriterFactory.java b/src/proguard/DataEntryWriterFactory.java index ca33a35..d76e596 100644 --- a/src/proguard/DataEntryWriterFactory.java +++ b/src/proguard/DataEntryWriterFactory.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -27,7 +27,7 @@ import java.util.List; /** * This class can create DataEntryWriter instances based on class paths. The - * writers will wrap the output in the proper jars, wars, ears, and zips. + * writers will wrap the output in the proper apks, jars, wars, ears, and zips. * * @author Eric Lafortune */ @@ -65,41 +65,53 @@ public class DataEntryWriterFactory private static DataEntryWriter createClassPathEntryWriter(ClassPathEntry classPathEntry, DataEntryWriter alternativeWriter) { + boolean isApk = classPathEntry.isApk(); boolean isJar = classPathEntry.isJar(); + boolean isAar = classPathEntry.isAar(); boolean isWar = classPathEntry.isWar(); boolean isEar = classPathEntry.isEar(); boolean isZip = classPathEntry.isZip(); List filter = classPathEntry.getFilter(); + List apkFilter = classPathEntry.getApkFilter(); List jarFilter = classPathEntry.getJarFilter(); + List aarFilter = classPathEntry.getAarFilter(); List warFilter = classPathEntry.getWarFilter(); List earFilter = classPathEntry.getEarFilter(); List zipFilter = classPathEntry.getZipFilter(); System.out.println("Preparing output " + - (isJar ? "jar" : + (isApk ? "apk" : + isJar ? "jar" : + isAar ? "aar" : isWar ? "war" : isEar ? "ear" : isZip ? "zip" : "directory") + " [" + classPathEntry.getName() + "]" + (filter != null || + apkFilter != null || jarFilter != null || + aarFilter != null || warFilter != null || earFilter != null || zipFilter != null ? " (filtered)" : "")); DataEntryWriter writer = new DirectoryWriter(classPathEntry.getFile(), + isApk || isJar || + isAar || isWar || isEar || isZip); // Set up the filtered jar writers. - writer = wrapInJarWriter(writer, isZip, zipFilter, ".zip", isJar || isWar || isEar); - writer = wrapInJarWriter(writer, isEar, earFilter, ".ear", isJar || isWar); - writer = wrapInJarWriter(writer, isWar, warFilter, ".war", isJar); - writer = wrapInJarWriter(writer, isJar, jarFilter, ".jar", false); + writer = wrapInJarWriter(writer, isZip, zipFilter, ".zip", isApk || isJar || isAar || isWar || isEar); + writer = wrapInJarWriter(writer, isEar, earFilter, ".ear", isApk || isJar || isAar || isWar); + writer = wrapInJarWriter(writer, isWar, warFilter, ".war", isApk || isJar || isAar); + writer = wrapInJarWriter(writer, isAar, aarFilter, ".aar", isApk || isJar); + writer = wrapInJarWriter(writer, isJar, jarFilter, ".jar", isApk); + writer = wrapInJarWriter(writer, isApk, apkFilter, ".apk", false); // Add a filter, if specified. writer = filter != null? |