summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2015-02-11 16:00:43 +0100
committermikaelpeltier <mikaelpeltier@google.com>2015-02-11 16:00:43 +0100
commit8c145231a3889a6ba62c76b5102c0075575a2114 (patch)
tree01b73b88b6510efa4b02fcb0d00f9943b453cb5d /jack
parent83b7ed4501ff36c08104a0848fdcb7712905b8de (diff)
downloadtoolchain_jack-8c145231a3889a6ba62c76b5102c0075575a2114.tar.gz
toolchain_jack-8c145231a3889a6ba62c76b5102c0075575a2114.tar.bz2
toolchain_jack-8c145231a3889a6ba62c76b5102c0075575a2114.zip
Remove a usage of list method into JaycePackageLoader
- getLoaderForSubPackage does not need to use list method, we can build the VPath of the expected folder to see if it exists or not. Change-Id: I36bf9a122b6d4bdc46b6b12425d3ff657bf43a01
Diffstat (limited to 'jack')
-rw-r--r--jack/src/com/android/jack/jayce/JaycePackageLoader.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/jack/src/com/android/jack/jayce/JaycePackageLoader.java b/jack/src/com/android/jack/jayce/JaycePackageLoader.java
index 6941963a..46abf30b 100644
--- a/jack/src/com/android/jack/jayce/JaycePackageLoader.java
+++ b/jack/src/com/android/jack/jayce/JaycePackageLoader.java
@@ -32,11 +32,14 @@ import com.android.jack.library.LibraryReadingException;
import com.android.jack.load.PackageLoader;
import com.android.jack.lookup.JPhantomLookup;
import com.android.jack.reporting.Reporter.Severity;
+import com.android.sched.util.file.NoSuchFileException;
+import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.location.Location;
import com.android.sched.util.log.LoggerFactory;
import com.android.sched.vfs.InputVDir;
import com.android.sched.vfs.InputVElement;
import com.android.sched.vfs.InputVFile;
+import com.android.sched.vfs.VPath;
import java.util.ArrayList;
import java.util.Collection;
@@ -114,14 +117,16 @@ public class JaycePackageLoader implements PackageLoader, HasInputLibrary {
@Nonnull
@Override
- public PackageLoader getLoaderForSubPackage(@Nonnull JPackage loading,
- @Nonnull String simpleName) throws JPackageLookupException {
- for (InputVElement sub : packageVDir.list()) {
- if (sub.isVDir() && sub.getName().equals(simpleName)) {
- return new JaycePackageLoader(inputJackLibrary, (InputVDir) sub, lookup, defaultLoadLevel);
- }
+ public PackageLoader getLoaderForSubPackage(@Nonnull JPackage loading, @Nonnull String simpleName)
+ throws JPackageLookupException {
+ try {
+ return new JaycePackageLoader(inputJackLibrary,
+ packageVDir.getInputVDir(new VPath(simpleName, '/')), lookup, defaultLoadLevel);
+ } catch (NotDirectoryException e) {
+ throw new JPackageLookupException(simpleName, loading);
+ } catch (NoSuchFileException e) {
+ throw new JPackageLookupException(simpleName, loading);
}
- throw new JPackageLookupException(simpleName, loading);
}
@Nonnull