package com.prezi.haxe.gradle; import com.prezi.haxe.gradle.incubating.AbstractBuildableModelElement; import com.prezi.haxe.gradle.incubating.BinaryInternal; import com.prezi.haxe.gradle.incubating.BinaryNamingScheme; import com.prezi.haxe.gradle.incubating.LanguageSourceSet; import org.gradle.api.DomainObjectSet; import org.gradle.api.artifacts.Configuration; import org.gradle.api.internal.DefaultDomainObjectSet; public abstract class AbstractHaxeBinary<T extends HaxeCompile> extends AbstractBuildableModelElement implements HaxeBinaryBase<T>, BinaryInternal { private final DomainObjectSet<LanguageSourceSet> source = new DefaultDomainObjectSet<LanguageSourceSet>(LanguageSourceSet.class); private final String name; private final Configuration configuration; private final BinaryNamingScheme namingScheme; private final TargetPlatform targetPlatform; private final Flavor flavor; private T compileTask; private Har sourceHarTask; protected AbstractHaxeBinary(String parentName, Configuration configuration, TargetPlatform targetPlatform, Flavor flavor) { this.namingScheme = new HaxeBinaryNamingScheme(parentName); this.name = namingScheme.getLifecycleTaskName(); this.configuration = configuration; this.targetPlatform = targetPlatform; this.flavor = flavor; } @Override public String getName() { return name; } @Override public String getDisplayName() { return namingScheme.getDescription(); } @Override public BinaryNamingScheme getNamingScheme() { return namingScheme; } @Override public String toString() { return namingScheme.getDescription(); } @Override public Configuration getConfiguration() { return configuration; } @Override public DomainObjectSet<LanguageSourceSet> getSource() { return source; } @Override public TargetPlatform getTargetPlatform() { return targetPlatform; } @Override public Flavor getFlavor() { return flavor; } @Override public T getCompileTask() { return compileTask; } @Override public void setCompileTask(T compileTask) { this.compileTask = compileTask; } @Override public Har getSourceHarTask() { return sourceHarTask; } @Override public void setSourceHarTask(Har sourceHarTask) { this.sourceHarTask = sourceHarTask; } }