OutputDir no longer accepts null constructor param.

This commit is contained in:
JesseBrault0709 2023-04-30 06:50:35 +02:00
parent 3803b26c04
commit f611aa3227
4 changed files with 26 additions and 12 deletions

View File

@ -12,7 +12,7 @@ final class SimpleBuildTasksConverter implements BuildTasksConverter {
Result<Collection<Task>> convert(Build build) {
def taskSpec = new TaskSpec(
build.name,
build.outputDirFunction.apply(build).file,
build.outputDirFunction.apply(build).asFile(),
build.siteSpec,
build.globals
)

View File

@ -1,24 +1,41 @@
package com.jessebrault.ssg.buildscript
import groovy.transform.EqualsAndHashCode
import org.jetbrains.annotations.Nullable
import groovy.transform.NullCheck
@NullCheck
@EqualsAndHashCode
final class OutputDir {
@Nullable
final String path
OutputDir(@Nullable String path) {
OutputDir(String path) {
this.path = path
}
OutputDir(File file) {
this.path = file.path
this(file.path)
}
File getFile() {
this.path ? new File(this.path) : new File('')
File asFile() {
new File(this.path)
}
String asString() {
this.path
}
Object asType(Class<?> clazz) {
switch (clazz) {
case File -> this.asFile()
case String -> this.asString()
default -> throw new IllegalArgumentException('cannot cast to a class other than File or String')
}
}
@Override
String toString() {
"OutputDir(path: ${ this.path })"
}
}

View File

@ -1,7 +1,5 @@
package com.jessebrault.ssg.buildscript
import org.jetbrains.annotations.Nullable
import java.util.function.Function
final class OutputDirFunctions {
@ -19,7 +17,7 @@ final class OutputDirFunctions {
return { new OutputDir(dir) }
}
static Function<Build, OutputDir> of(@Nullable String path) {
static Function<Build, OutputDir> of(String path) {
return { new OutputDir(path) }
}

View File

@ -3,7 +3,6 @@ package com.jessebrault.ssg.buildscript.dsl
import com.jessebrault.ssg.buildscript.Build
import com.jessebrault.ssg.buildscript.OutputDir
import com.jessebrault.ssg.buildscript.OutputDirFunctions
import org.jetbrains.annotations.Nullable
import java.util.function.Function
@ -31,7 +30,7 @@ final class BuildDelegate extends AbstractBuildDelegate<Build> {
this.outputDirFunction = OutputDirFunctions.of(file)
}
void setOutputDir(@Nullable String path) {
void setOutputDir(String path) {
this.outputDirFunction = OutputDirFunctions.of(path)
}