package com.prezi.spaghetti.gradle.internal; import com.prezi.spaghetti.gradle.BundleModule; import com.prezi.spaghetti.gradle.ObfuscateModule; import com.prezi.spaghetti.gradle.internal.incubating.AbstractBuildableModelElement; import com.prezi.spaghetti.gradle.internal.incubating.BinaryInternal; import com.prezi.spaghetti.gradle.internal.incubating.BinaryNamingScheme; import org.gradle.api.tasks.bundling.AbstractArchiveTask; import java.io.File; import java.util.concurrent.Callable; public abstract class AbstractSpaghettiModule extends AbstractBuildableModelElement implements BinaryInternal, SpaghettiModule { private final BinaryNamingScheme namingScheme; private final SpaghettiModuleData data; public AbstractSpaghettiModule(BinaryNamingScheme namingScheme, SpaghettiModuleData data) { this.namingScheme = namingScheme; this.data = data; } @Override public Callable<File> getJavaScriptFile() { return data.getJavaScriptFile(); } @Override public Callable<File> getSourceMapFile() { return data.getSourceMapFile(); } @Override public BundleModule getBundleTask() { return data.getBundleTask(); } @Override public ObfuscateModule getObfuscateTask() { return data.getObfuscateTask(); } @Override public AbstractArchiveTask getArchiveTask() { return data.getArchiveTask(); } @Override public AbstractArchiveTask getArchiveObfuscatedTask() { return data.getArchiveObfuscatedTask(); } @Override public BinaryNamingScheme getNamingScheme() { return namingScheme; } @Override public String getDisplayName() { return namingScheme.getDescription(); } @Override public String getName() { return namingScheme.getLifecycleTaskName(); } @Override public String toString() { return getName() + " Spaghetti module binary"; } }