AndroidAtomImpl(@NonNull AtomDependency clonedAtom) { super( clonedAtom.getProjectPath(), null, clonedAtom.getCoordinates(), false /* isSkipped */, false /*isProvided*/); this.androidAtoms = ImmutableList.of(); this.androidLibraries = ImmutableList.of(); this.javaLibraries = ImmutableList.of(); variant = clonedAtom.getVariant(); bundle = clonedAtom.getArtifactFile(); folder = clonedAtom.getExtractedFolder(); manifest = clonedAtom.getManifest(); jarFile = clonedAtom.getJarFile(); resFolder = clonedAtom.getResFolder(); assetsFolder = clonedAtom.getAssetsFolder(); atomName = clonedAtom.getAtomName(); dexFolder = clonedAtom.getDexFolder(); atomMetadataFile = clonedAtom.getAtomMetadataFile(); libFolder = clonedAtom.getLibFolder(); javaResFolder = clonedAtom.getJavaResFolder(); resourcePackage = clonedAtom.getResourcePackage(); }
@Override public String toString() { return MoreObjects.toStringHelper(this) .add("artifactFile", getArtifactFile()) .add("coordinates", getCoordinates()) .add("projectPath", getProjectPath()) .add("extractedFolder", getExtractedFolder()) .add("atomName", atomName) .toString(); } }
@NonNull public File getLibFolder() { return new File(getExtractedFolder(), FD_NATIVE_LIBS); }
@NonNull @Override public File getPackageAtom(@NonNull AtomDependency androidAtom) { return new File(getMergeAssetsOutputDir(), androidAtom.getAtomName() + DOT_ATOM); }
@Override public void execute(@NonNull MergeDexAtomResClass task) { task.setVariantName(scope.getFullVariantName()); task.setAndroidBuilder(scope.getGlobalScope().getAndroidBuilder()); task.setAtomDexDir(atomDependency.getDexFolder()); task.setResClassDir(scope.getJavaOutputDir(atomDependency)); task.setTempDir(scope.getIncrementalDir( atomDependency.getAtomName() + "-" + scope.getFullVariantName())); task.setOutputDir(scope.getDexOutputFolder(atomDependency)); task.scope = scope; } }
pathLeaf); AtomDependency atomDependency = new AtomDependency( artifact.getFile(), mavenCoordinates, nodeType = NodeType.ATOM; outDependencyMap.put(atomDependency.getAddress(), atomDependency);
@Nullable @Override public File getAtomMetadataBaseFolder() { return atomDependency.getAtomMetadataFile().getParentFile(); }
@NonNull @Override public File getAssetsDir() { return atomDependency.getAssetsFolder(); }
public AtomDependency( @NonNull File artifactFile, @NonNull MavenCoordinates coordinates, @NonNull String name, @Nullable String projectPath, @NonNull File extractedFolder, @NonNull String atomName, @Nullable String variant) { super(artifactFile, coordinates, name, projectPath, extractedFolder, variant); this.atomName = atomName; hashCode = computeHashCode(); }
@NonNull public File getJavaResFolder() { return new File(getExtractedFolder(), FD_JAVA_RES); }
@NonNull @Override public String getName() { return scope.getTaskName("dex", StringHelper.capitalize(atomDependency.getAtomName()) + ATOM_SUFFIX); }
@Override public void execute(@NonNull GenerateAtomMetadata generateAtomMetadata) { AtomVariantOutputData variantOutputData = (AtomVariantOutputData) scope .getVariantOutputData(); // only care about first level direct atoms? DependencyContainer dependencyContainer = scope.getVariantScope().getVariantConfiguration().getPackageDependencies(); ImmutableSet.Builder<File> atomMetadataBuilder = ImmutableSet.builder(); for (AtomDependency atom : dependencyContainer.getDirectAtomDependencies()) { atomMetadataBuilder.add(atom.getAtomMetadataFile()); } generateAtomMetadata.setAtomMetadataDependency(atomMetadataBuilder.build()); generateAtomMetadata.setAtomName(scope.getGlobalScope().getProject().getName()); String versionName = variantOutputData.getVersionName(); checkState(!Strings.isNullOrEmpty(versionName), "versionName is not specified."); generateAtomMetadata.setAtomVersion(versionName); generateAtomMetadata.setAtomMetadataFolder(FileUtils.join( scope.getVariantScope().getBaseBundleDir(), FD_INSTANTAPP_METADATA)); generateAtomMetadata.setVariantName(variantOutputData.getFullName()); variantOutputData.generateAtomMetadataTask = generateAtomMetadata; }
@Override @NonNull public File getJarFile() { return new File(getExtractedFolder(), FN_CLASSES_JAR); }
@NonNull @Override public String getName() { return scope.getTaskName("process", StringHelper.capitalize(atomDependency.getAtomName()) + "AtomResources"); }
@NonNull public File getDexFolder() { return new File(getExtractedFolder(), FD_DEX); }
@NonNull @Override public String getName() { return scope.getTaskName("compile", StringHelper.capitalize(atomDependency.getAtomName()) + "ResClassWithJavac"); }
@NonNull public File getResourcePackage() { return new File(getExtractedFolder(), FN_RES_BASE + DOT_RES); }
@NonNull @Override public String getTaskName(@NonNull String prefix, @NonNull String suffix) { return variantScope.getTaskName(prefix, StringHelper.capitalize(atomDependency.getAtomName()) + suffix); }
@NonNull public File getAtomMetadataFile() { return FileUtils.join( getExtractedFolder(), FD_INSTANTAPP_METADATA, FN_ATOM_METADATA); }
@Override @NonNull public File getRClassSourceOutputDir(@NonNull AtomDependency atomDependency) { return FileUtils.join( globalScope.getGeneratedDir(), FD_SOURCE_GEN, FD_RES_CLASS, atomDependency.getAtomName() + "-" + getVariantConfiguration().getDirName()); }