Refactor and fix script annotation processing

This commit is contained in:
Ilya Chernikov
2016-12-08 22:23:38 +01:00
parent 1cc85df78e
commit b1cd98f2d5
12 changed files with 390 additions and 208 deletions
@@ -28,7 +28,7 @@ interface Resolver {
class DirectResolver : Resolver {
override fun tryResolve(dependsOn: DependsOn): Iterable<File>? =
dependsOn.value?.let(::File)?.check { it.exists() && (it.isFile || it.isDirectory) }?.let { listOf(it) }
dependsOn.value.check(String::isNotBlank)?.let(::File)?.check { it.exists() && (it.isFile || it.isDirectory) }?.let { listOf(it) }
}
class FlatLibDirectoryResolver(val path: File) : Resolver {
@@ -39,10 +39,10 @@ class FlatLibDirectoryResolver(val path: File) : Resolver {
override fun tryResolve(dependsOn: DependsOn): Iterable<File>? =
// TODO: add coordinates and wildcard matching
dependsOn.value?.let{ File(path, it) }?.check { it.exists() && (it.isFile || it.isDirectory) }?.let { listOf(it) }
dependsOn.value.check(String::isNotBlank)?.let{ File(path, it) }?.check { it.exists() && (it.isFile || it.isDirectory) }?.let { listOf(it) }
companion object {
fun tryCreate(annotation: Repository): FlatLibDirectoryResolver? =
annotation.value?.check(String::isNotBlank)?.let(::File)?.check { it.exists() && it.isDirectory }?.let(::FlatLibDirectoryResolver)
annotation.value.check(String::isNotBlank)?.let(::File)?.check { it.exists() && it.isDirectory }?.let(::FlatLibDirectoryResolver)
}
}
@@ -43,7 +43,7 @@ class MavenResolver(val reportError: ((String) -> Unit)? = null): Resolver {
private fun currentRepos() = if (repos.isEmpty()) arrayListOf(mavenCentral) else repos
private fun String?.isValidParam() = if (this != null && isNotBlank()) true else false
private fun String.isValidParam() = isNotBlank()
override fun tryResolve(dependsOn: DependsOn): Iterable<File>? {
@@ -55,13 +55,10 @@ class MavenResolver(val reportError: ((String) -> Unit)? = null): Resolver {
val artifactId: DefaultArtifact = when {
dependsOn.groupId.isValidParam() || dependsOn.artifactId.isValidParam() -> {
val s1 = dependsOn.groupId
val s2 = dependsOn.artifactId
DefaultArtifact(dependsOn.groupId.orNullIfBlank(), dependsOn.artifactId.orNullIfBlank(), null, dependsOn.version.orNullIfBlank())
}
dependsOn.value.isValidParam() && dependsOn.value.count { it == ':' } == 2 -> {
val s = dependsOn.value
DefaultArtifact(s)
DefaultArtifact(dependsOn.value)
}
else -> {
error("Unknown set of arguments to maven resolver: ${dependsOn.value}")
@@ -84,7 +81,7 @@ class MavenResolver(val reportError: ((String) -> Unit)? = null): Resolver {
}
fun tryAddRepo(annotation: Repository): Boolean {
val urlStr = if (annotation.url.isValidParam()) annotation.url else annotation.value ?: return false
val urlStr = annotation.url.check { it.isValidParam() } ?: annotation.value.check { it.isValidParam() } ?: return false
try {
URL(urlStr)
} catch (_: MalformedURLException) {
@@ -92,7 +89,7 @@ class MavenResolver(val reportError: ((String) -> Unit)? = null): Resolver {
}
repos.add(
RemoteRepository(
if (annotation.id.isValidParam()) annotation.id else "cantral",
if (annotation.id.isValidParam()) annotation.id else "central",
"default",
urlStr
))