in plugin/src/main/java/com/uber/okbuck/core/model/android/ExoPackageScope.java [91:145]
private void extractDependencies(Scope base, List<String> exoPackageDependencies) {
exoPackageDependencies.forEach(
exoPackageDep -> {
String first; // can denote either group or project name
String last; // can denote either module or configuration name
boolean qualified;
if (exoPackageDep.contains(":")) {
List<String> parts = Splitter.on(':').splitToList(exoPackageDep);
first = parts.get(0);
last = parts.get(1);
qualified = true;
} else {
first = last = exoPackageDep;
qualified = false;
}
Optional<OExternalDependency> externalDepOptional =
base.getExternalDeps(false)
.stream()
.filter(
dependency -> {
if (qualified) {
return dependency.getGroup().equals(first)
&& dependency.getName().equals(last);
} else {
return dependency.getName().equals(last);
}
})
.findFirst();
if (externalDepOptional.isPresent()) {
OExternalDependency externalDependency = externalDepOptional.get();
this.allExternal.put(externalDependency.getVersionless(), externalDependency);
this.firstLevelExternal.put(externalDependency.getVersionless(), externalDependency);
} else {
Optional<Target> variantDepOptional =
base.getTargetDeps(false)
.stream()
.filter(
variant -> {
if (qualified) {
return variant.getName().equals(last)
&& variant.getPath().equals(first);
} else {
return variant.getPath().equals(first);
}
})
.findFirst();
variantDepOptional.ifPresent(allTargetDeps::add);
variantDepOptional.ifPresent(firstLevelTargetDeps::add);
}
});
}