diff options
Diffstat (limited to 'src/proguard/ClassPathEntry.java')
-rw-r--r-- | src/proguard/ClassPathEntry.java | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/src/proguard/ClassPathEntry.java b/src/proguard/ClassPathEntry.java deleted file mode 100644 index faceb1f..0000000 --- a/src/proguard/ClassPathEntry.java +++ /dev/null @@ -1,384 +0,0 @@ -/* - * ProGuard -- shrinking, optimization, obfuscation, and preverification - * of Java bytecode. - * - * 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 - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -package proguard; - -import proguard.util.ListUtil; - -import java.io.*; -import java.util.List; - - -/** - * This class represents an entry from a class path: an apk, a jar, an aar, a - * war, a zip, an ear, or a directory, with a name and a flag to indicates - * whether the entry is an input entry or an output entry. Optional filters can - * be specified for the names of the contained resource/classes, apks, jars, - * aars, wars, ears, and zips. - * - * @author Eric Lafortune - */ -public class ClassPathEntry -{ - private File file; - private boolean output; - private List filter; - private List apkFilter; - private List jarFilter; - private List aarFilter; - private List warFilter; - private List earFilter; - private List zipFilter; - - private String cachedName; - - - /** - * Creates a new ClassPathEntry with the given file and output flag. - */ - public ClassPathEntry(File file, boolean isOutput) - { - this.file = file; - this.output = isOutput; - } - - - /** - * Returns the path name of the entry. - */ - public String getName() - { - if (cachedName == null) - { - cachedName = getUncachedName(); - } - - return cachedName; - } - - - /** - * Returns the uncached path name of the entry. - */ - private String getUncachedName() - { - try - { - return file.getCanonicalPath(); - } - catch (IOException ex) - { - return file.getPath(); - } - } - - - /** - * Returns the file. - */ - public File getFile() - { - return file; - } - - - /** - * Sets the file. - */ - public void setFile(File file) - { - this.file = file; - this.cachedName = null; - } - - - /** - * Returns whether this data entry is an output entry. - */ - public boolean isOutput() - { - return output; - } - - - /** - * Specifies whether this data entry is an output entry. - */ - public void setOutput(boolean output) - { - this.output = output; - } - - - /** - * Returns whether this data entry is a dex file. - */ - public boolean isDex() - { - return hasExtension(".dex"); - } - - - /** - * Returns whether this data entry is an apk file. - */ - public boolean isApk() - { - return hasExtension(".apk") || - hasExtension(".ap_"); - } - - - /** - * Returns whether this data entry is a jar file. - */ - public boolean isJar() - { - return hasExtension(".jar"); - } - - - /** - * Returns whether this data entry is an aar file. - */ - public boolean isAar() - { - return hasExtension(".aar"); - } - - - /** - * Returns whether this data entry is a war file. - */ - public boolean isWar() - { - return hasExtension(".war"); - } - - - /** - * Returns whether this data entry is a ear file. - */ - public boolean isEar() - { - return hasExtension(".ear"); - } - - - /** - * Returns whether this data entry is a zip file. - */ - public boolean isZip() - { - return hasExtension(".zip"); - } - - - /** - * Returns whether this data entry has the given extension. - */ - private boolean hasExtension(String extension) - { - return endsWithIgnoreCase(file.getPath(), extension); - } - - - /** - * Returns whether the given string ends with the given suffix, ignoring - * its case. - */ - private static boolean endsWithIgnoreCase(String string, String suffix) - { - int stringLength = string.length(); - int suffixLength = suffix.length(); - - return string.regionMatches(true, stringLength - - suffixLength, suffix, 0, suffixLength); - } - - - /** - * Returns whether this data entry has any kind of filter. - */ - public boolean isFiltered() - { - return filter != null || - apkFilter != null || - jarFilter != null || - aarFilter != null || - warFilter != null || - earFilter != null || - zipFilter != null; - } - - - /** - * Returns the name filter that is applied to bottom-level files in this entry. - */ - public List getFilter() - { - return filter; - } - - /** - * Sets the name filter that is applied to bottom-level files in this entry. - */ - public void setFilter(List filter) - { - this.filter = filter == null || filter.size() == 0 ? null : filter; - } - - - /** - * Returns the name filter that is applied to apk files in this entry, if any. - */ - public List getApkFilter() - { - return apkFilter; - } - - /** - * Sets the name filter that is applied to apk files in this entry, if any. - */ - public void setApkFilter(List filter) - { - this.apkFilter = filter == null || filter.size() == 0 ? null : filter; - } - - - /** - * Returns the name filter that is applied to jar files in this entry, if any. - */ - public List getJarFilter() - { - return jarFilter; - } - - /** - * Sets the name filter that is applied to jar files in this entry, if any. - */ - public void setJarFilter(List filter) - { - this.jarFilter = filter == null || filter.size() == 0 ? null : filter; - } - - - /** - * Returns the name filter that is applied to aar files in this entry, if any. - */ - public List getAarFilter() - { - return aarFilter; - } - - /** - * Sets the name filter that is applied to aar files in this entry, if any. - */ - public void setAarFilter(List filter) - { - this.aarFilter = filter == null || filter.size() == 0 ? null : filter; - } - - - /** - * Returns the name filter that is applied to war files in this entry, if any. - */ - public List getWarFilter() - { - return warFilter; - } - - /** - * Sets the name filter that is applied to war files in this entry, if any. - */ - public void setWarFilter(List filter) - { - this.warFilter = filter == null || filter.size() == 0 ? null : filter; - } - - - /** - * Returns the name filter that is applied to ear files in this entry, if any. - */ - public List getEarFilter() - { - return earFilter; - } - - /** - * Sets the name filter that is applied to ear files in this entry, if any. - */ - public void setEarFilter(List filter) - { - this.earFilter = filter == null || filter.size() == 0 ? null : filter; - } - - - /** - * Returns the name filter that is applied to zip files in this entry, if any. - */ - public List getZipFilter() - { - return zipFilter; - } - - /** - * Sets the name filter that is applied to zip files in this entry, if any. - */ - public void setZipFilter(List filter) - { - this.zipFilter = filter == null || filter.size() == 0 ? null : filter; - } - - - // Implementations for Object. - - public String toString() - { - String string = getName(); - - if (filter != null || - jarFilter != null || - aarFilter != null || - warFilter != null || - earFilter != null || - zipFilter != null) - { - string += - ConfigurationConstants.OPEN_ARGUMENTS_KEYWORD + - (aarFilter != null ? ListUtil.commaSeparatedString(aarFilter, true) : "") + - ConfigurationConstants.SEPARATOR_KEYWORD + - (apkFilter != null ? ListUtil.commaSeparatedString(apkFilter, true) : "") + - ConfigurationConstants.SEPARATOR_KEYWORD + - (zipFilter != null ? ListUtil.commaSeparatedString(zipFilter, true) : "") + - ConfigurationConstants.SEPARATOR_KEYWORD + - (earFilter != null ? ListUtil.commaSeparatedString(earFilter, true) : "") + - ConfigurationConstants.SEPARATOR_KEYWORD + - (warFilter != null ? ListUtil.commaSeparatedString(warFilter, true) : "") + - ConfigurationConstants.SEPARATOR_KEYWORD + - (jarFilter != null ? ListUtil.commaSeparatedString(jarFilter, true) : "") + - ConfigurationConstants.SEPARATOR_KEYWORD + - (filter != null ? ListUtil.commaSeparatedString(filter, true) : "") + - ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD; - } - - return string; - } -} |