From 6d37da56b625ca4af5d14a8392333dfb04cbc9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sun, 23 Aug 2020 23:11:41 +0200 Subject: [PATCH 1/7] Make DSL simpler. - Still needs some fixes, e.g. how to avoid confusion (property setter/getter?) --- build.gradle.kts | 39 ++++++++--- gradle/wrapper/gradle-wrapper.jar | Bin 58694 -> 58910 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 2 + gradlew.bat | 1 + settings.gradle.kts | 2 +- .../kotlin/de/pheerai/rcdbquery/Sample.kt | 16 ++--- .../dataMappings/category/CategoryBuilder.kt | 29 +------- .../dataMappings/category/paramBuilder.kt | 2 +- .../classification/ClassificationBuilder.kt | 4 +- .../classification/paramBuilder.kt | 2 +- .../dataMappings/design/DesignBuilder.kt | 9 +-- .../dataMappings/design/paramBuilder.kt | 2 +- .../internal/MultiParamBuilder.kt | 5 +- .../dataMappings/layout/LayoutBuilder.kt | 29 +------- .../dataMappings/layout/paramBuilder.kt | 6 +- .../dataMappings/order/OrderBuilder.kt | 26 +------ .../dataMappings/order/paramBuilder.kt | 2 +- .../dataMappings/page/paramBuilder.kt | 2 +- .../dataMappings/searchTerm/paramBuilder.kt | 2 +- .../dataMappings/searchType/paramBuilder.kt | 2 +- .../dataMappings/startsWith/paramBuilder.kt | 2 +- .../dataMappings/status/StatusBuilder.kt | 5 +- .../dataMappings/status/paramBuilder.kt | 2 +- .../dataMappings/thrill/ThrillBuilder.kt | 5 +- .../dataMappings/thrill/paramBuilder.kt | 4 +- .../dataMappings/type/TypeBuilder.kt | 3 +- .../dataMappings/type/paramBuilder.kt | 10 ++- .../rcdbquery/dataMappings/unknownParams.kt | 13 ++-- .../rcdbquery/dataMappings/vendor/Vendor.kt | 13 ++-- .../dataMappings/vendor/VendorBuilder.kt | 7 +- .../dataMappings/vendor/paramBuilder.kt | 2 +- .../pheerai/rcdbquery/dsl/params/Collector.kt | 48 +++++++++++++ .../de/pheerai/rcdbquery/dsl/params/Params.kt | 8 +++ .../rcdbquery/dsl/params/exceptions.kt | 3 + .../de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt | 64 ++---------------- .../kotlin/de/pheerai/rcdbquery/TestConfig.kt | 7 ++ .../pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt | 61 +++++++++++------ 38 files changed, 202 insertions(+), 239 deletions(-) create mode 100644 src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt create mode 100644 src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt create mode 100644 src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt create mode 100644 src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt diff --git a/build.gradle.kts b/build.gradle.kts index 61b8cea..3a270b6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,15 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +buildscript { + extra.apply { + set("kotestVersion", "4.2.0") + set("kotlinApiVersion", "1.4") + set("javaVersion", JavaVersion.VERSION_11) + } +} + +inline fun getFromExtra(prop: String) = project.extra[prop] as T + // TODO: Documentation // TODO: Source Jar // TODO: Doc Jar @@ -13,29 +23,36 @@ repositories { mavenCentral() } -project.version = "0.0.1" +project.version = "0.0.2" project.group = "de.pheerai.rcdb" - java { - targetCompatibility = JavaVersion.VERSION_11 - sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = getFromExtra("javaVersion") + sourceCompatibility = getFromExtra("javaVersion") } dependencies { implementation(kotlin("stdlib-jdk8")) - testImplementation("io.kotest:kotest-runner-junit5-jvm:4.0.5") - testImplementation("io.kotest:kotest-assertions-core-jvm:4.0.5") + testImplementation( + group = "io.kotest", + name = "kotest-runner-junit5-jvm", + version = getFromExtra("kotestVersion") + ) + testImplementation( + group = "io.kotest", + name = "kotest-assertions-core-jvm", + version = getFromExtra("kotestVersion") + ) } tasks { withType().configureEach { kotlinOptions { - freeCompilerArgs = listOf("-XXLanguage:+InlineClasses") - apiVersion = "1.3" - languageVersion = "1.3" - jvmTarget = JavaVersion.VERSION_11.toString() +// freeCompilerArgs = listOf("-XXLanguage:+InlineClasses") + apiVersion = getFromExtra("kotlinApiVersion") + languageVersion = getFromExtra("kotlinApiVersion") + jvmTarget = getFromExtra("javaVersion").toString() } } @@ -48,7 +65,7 @@ publishing { publications { create("maven") { groupId = project.group as String - artifactId = project.name as String + artifactId = project.name version = project.version as String from(components["java"]) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 490fda8577df6c95960ba7077c43220e5bb2c0d9..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 6447 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 F{|nTN-B$nr diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6623300..bb8b2fc 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 2fe81a7..fbd7c51 100755 --- a/gradlew +++ b/gradlew @@ -82,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath diff --git a/gradlew.bat b/gradlew.bat index 62bd9b9..5093609 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -84,6 +84,7 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% diff --git a/settings.gradle.kts b/settings.gradle.kts index d7cc2ed..abccebe 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,6 @@ pluginManagement { plugins { - kotlin("jvm") version "1.3.72" + kotlin("jvm") version "1.4.0" } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt index 1631acb..78b389d 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt @@ -1,11 +1,12 @@ package de.pheerai.rcdbquery +import de.pheerai.rcdbquery.dataMappings.order.Order import de.pheerai.rcdbquery.dataMappings.order.sortBy import de.pheerai.rcdbquery.dataMappings.page.page import de.pheerai.rcdbquery.dataMappings.searchTerm.searchTerm import de.pheerai.rcdbquery.dataMappings.searchType.SearchType import de.pheerai.rcdbquery.dataMappings.searchType.searchType -import de.pheerai.rcdbquery.dataMappings.vendor.Vendor +import de.pheerai.rcdbquery.dataMappings.vendor.Vendor.* import de.pheerai.rcdbquery.dataMappings.vendor.vendors import de.pheerai.rcdbquery.dsl.rcdbQuery @@ -18,14 +19,13 @@ fun generateNameQueryUrl() = rcdbQuery { searchType(SearchType.COASTER) searchTerm("Dragon") vendors { - vekoma() - intamin() - mack() - of(Vendor.PRESTON_AND_BARBIERI) + VEKOMA() + INTAMIN() + MACK() } sortBy { - manufacturer() - inversions() + Order.MANUFACTURER() + Order.INVERSIONS() } } @@ -33,6 +33,6 @@ fun generatePageQueryUrl() = rcdbQuery { page(3) searchType(SearchType.COASTER) vendors { - intamin() + INTAMIN() } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt index 2332b46..9571d0f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt @@ -2,36 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.category import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class CategoryBuilder: MultiParamBuilder() { +class CategoryBuilder : MultiParamBuilder() { override fun add(param: Category): CategoryBuilder { super.add(param) return this } - fun fourthDimension() = this.add(Category.FOURTH_DIMENSION) - fun brakeman() = this.add(Category.BRAKEMAN) - fun builtInhouse() = this.add(Category.BUILT_INHOUSE) - fun darkride() = this.add(Category.DARK_RIDE) - fun dualStation() = this.add(Category.DUAL_STATION) - fun enclosed() = this.add(Category.ENCLOSED) - fun floorless() = this.add(Category.FLOORLESS) - fun hybrid() = this.add(Category.HYBRID) - fun indoor() = this.add(Category.INDOOR) - fun mirror() = this.add(Category.MIRROR) - fun moebius() = this.add(Category.MOEBIUS) - fun onboardSound() = this.add(Category.ONBOARD_SOUND) - fun pendulum() = this.add(Category.PENDULUM) - fun quasiMoebius() = this.add(Category.QUASI_MOEBIUS) - fun rockingCars() = this.add(Category.ROCKING_CARS) - fun scenicRailway() = this.add(Category.SCENIC_RAILWAY) - fun shuttle() = this.add(Category.SHUTTLE) - fun sideFriction() = this.add(Category.SIDE_FRICTION) - fun singleRail() = this.add(Category.SINGLE_RAIL) - fun slidingStation() = this.add(Category.SLIDING_STATION) - fun spinningCars() = this.add(Category.SPINNING_CARS) - fun stackedStorage() = this.add(Category.STACKED_STORAGE) - fun turntableStation() = this.add(Category.TURNTABLE_STATION) - fun twin() = this.add(Category.TWIN) - fun virtualReality() = this.add(Category.VIRTUAL_REALITY) - fun waterCoaster() = this.add(Category.WATER_COASTER) + override fun Category.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt index 883c4fc..323cbcc 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.category -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector { val builder = CategoryBuilder() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt index 1b41907..9b8328b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt @@ -8,7 +8,5 @@ class ClassificationBuilder : MultiParamBuilder() { return this } - fun rollerCoaster() = this.add(Classification.ROLLER_COASTER) - fun poweredCoaster() = this.add(Classification.POWERED_COASTER) - fun mountainCoaster() = this.add(Classification.MOUNTAIN_COASTER) + override fun Classification.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt index e79c401..14d7410 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.classification -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector { val builder = ClassificationBuilder() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt index b340276..237130d 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt @@ -8,12 +8,5 @@ class DesignBuilder : MultiParamBuilder() { return this } - fun sitDown() = Design.SIT_DOWN - fun inverted() = Design.INVERTED - fun suspended() = Design.SUSPENDED - fun wing() = Design.WING - fun flying() = Design.FLYING - fun standUp() = Design.STAND_UP - fun bobsled() = Design.BOBSLED - fun pipeline() = Design.PIPELINE + override fun Design.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt index 5fbd84c..e94d32c 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.design -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector { val builder = DesignBuilder() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt index 829f4b2..e1cbe56 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.internal -open class MultiParamBuilder> { +abstract class MultiParamBuilder> { private val paramList: MutableList = mutableListOf() open fun add(param: T): MultiParamBuilder { @@ -19,5 +19,6 @@ open class MultiParamBuilder> { } fun build() = paramList.toList() -} + abstract operator fun T.invoke(): MultiParamBuilder +} diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt index c07957e..6f75765 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt @@ -8,32 +8,5 @@ class LayoutBuilder : MultiParamBuilder() { return this } - fun bigApple() = this.add(Layout.BIG_APPLE) - fun wackyWorm() = this.add(Layout.BIG_APPLE) - - fun circleDip() = this.add(Layout.CIRCLE_DIP) - fun circularGravityRailway() = this.add(Layout.CIRCULAR_GRAVIY_RAILWAY) - fun cyclone() = this.add(Layout.CYCLONE) - fun doubleFigureEight() = this.add(Layout.DOUBLE_FIGURE_EIGHT) - fun doubleOutAndBack() = this.add(Layout.DOUBLE_OUT_AND_BACK) - fun figureEight() = this.add(Layout.FIGURE_EIGHT) - fun jungleMouse() = this.add(Layout.JUNGLE_MOUSE) - fun lShapedOutAndBack() = this.add(Layout.L_SHAPED_OUT_AND_BACK) - fun miteMouse() = this.add(Layout.MITE_MOUSE) - fun outAndBack() = this.add(Layout.OUT_AND_BACK) - fun oval() = this.add(Layout.OVAL) - fun shuttleLoop() = this.add(Layout.SHUTTLE_LOOP) - fun singleHelixCenter() = this.add(Layout.SINGLE_HELIX_CENTER) - fun singleHelixLeft() = this.add(Layout.SINGLE_HELIX_LEFT) - fun singleHelixRear() = this.add(Layout.SINGLE_HELIX_REAR) - fun singleHelixRight() = this.add(Layout.SINGLE_HELIX_RIGHT) - fun terrain() = this.add(Layout.TERRAIN) - fun triangle() = this.add(Layout.TRIANGLE) - fun tripleOutAndBack() = this.add(Layout.TRIPLE_OUT_AND_BACK) - fun twinHelix() = this.add(Layout.TWIN_HELIX) - fun twister() = this.add(Layout.TWISTER) - fun uShuttle() = this.add(Layout.U_SHUTTLE) - fun wildMouse() = this.add(Layout.WILD_MOUSE) - fun zyklon() = this.add(Layout.ZYKLON) - fun galaxy() = this.add(Layout.ZYKLON) + override operator fun Layout.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt index 2acab17..611b9e2 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt @@ -1,10 +1,12 @@ package de.pheerai.rcdbquery.dataMappings.layout -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector { val builder = LayoutBuilder() - builder.body() + with(Layout) { + builder.body() + } this[Layout.paramKey] = builder.build() return this } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt index 3bc4bff..79570f2 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt @@ -18,30 +18,6 @@ class OrderBuilder : MultiParamBuilder() { return this } - fun of(order: Order) = this.add(order) - fun manufacturer() = this.add(Order.MANUFACTURER) - fun inversions() = this.add(Order.INVERSIONS) - fun name() = this.add(Order.NAME) - fun location() = this.add(Order.LOCATION) - fun park() = this.add(Order.PARK) - fun opened() = this.add(Order.OPENED) - fun closed() = this.add(Order.CLOSED) - fun entered() = this.add(Order.ENTERED) - fun type() = this.add(Order.TYPE) - fun design() = this.add(Order.DESIGN) - fun classification() = this.add(Order.CLASSIFICATION) - fun layout() = this.add(Order.LAYOUT) - fun model() = this.add(Order.MODEL) - fun modelLine() = this.add(Order.MODEL_LINE) - fun speed() = this.add(Order.SPEED) - fun height() = this.add(Order.HEIGHT) - fun drop() = this.add(Order.DROP) - fun length() = this.add(Order.LENGTH) - fun angle() = this.add(Order.ANGLE) - fun serialNo() = this.add(Order.SERIAL_NO) - fun scale() = this.add(Order.SCALE) - fun rideTime() = this.add(Order.RIDE_TIME) - fun state() = this.add(Order.STATUS) - fun closing() = this.add(Order.CLOSING) + override fun Order.invoke() = add(this) fun allRelevant() = this.addAll(Order.values().filter { it.relevantForAll }) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt index 5d6a094..2c205ee 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.order -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector { val builder = OrderBuilder() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt index 1848292..4cf3d14 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.page -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.page(page: Long) = also { this[Page.paramKey] = diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt index e4127ae..ab3d49f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.searchTerm -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.searchTerm(term: String) = also { it[SearchTerm.paramKey] = listOf( diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt index a5e1711..08fb494 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.searchType -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.searchType(searchType: SearchType) = also { it[SearchType.paramKey] = searchType diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt index 70e04f8..f23422a 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.startsWith -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.startsWith(term: String) = also { this[StartsWith.paramKey] = diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt index 4a27274..752da5b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt @@ -8,8 +8,5 @@ class StatusBuilder : MultiParamBuilder() { return this } - fun sbno() = this.add(Status.SBNO) - fun operating() = this.add(Status.OPERATING) - fun underConstruction() = this.add(Status.UNDER_CONSTRUCTION) - fun stored() = this.add(Status.STORED) + override fun Status.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt index 9d133b0..7fd8830 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.status -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector { val builder = StatusBuilder() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt index 7352839..7dab9e9 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt @@ -8,8 +8,5 @@ class ThrillBuilder : MultiParamBuilder() { return this } - fun kiddie() = this.add(Thrill.KIDDIE) - fun family() = this.add(Thrill.FAMILY) - fun thrill() = this.add(Thrill.THRILL) - fun extreme() = this.add(Thrill.EXTREME) + override fun Thrill.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt index bfac7c2..da3ba1b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt @@ -1,8 +1,8 @@ package de.pheerai.rcdbquery.dataMappings.thrill -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.type(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { +fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { val builder = ThrillBuilder() builder.body() this[Thrill.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt index 7d85e8f..fd0fccd 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt @@ -8,6 +8,5 @@ class TypeBuilder : MultiParamBuilder() { return this } - fun steel() = this.add(Type.STEEL) - fun wood() = this.add(Type.WOOD) + override fun Type.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt index 56b1895..db509eb 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt @@ -1,12 +1,10 @@ package de.pheerai.rcdbquery.dataMappings.type -import de.pheerai.rcdbquery.dataMappings.thrill.Thrill -import de.pheerai.rcdbquery.dataMappings.thrill.ThrillBuilder -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { - val builder = ThrillBuilder() +fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector { + val builder = TypeBuilder() builder.body() - this[Thrill.paramKey] = builder.build() + this[Type.paramKey] = builder.build() return this } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt index da1678c..fe72e91 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt @@ -1,20 +1,23 @@ package de.pheerai.rcdbquery.dataMappings import de.pheerai.rcdbquery.dataMappings.order.Order -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector + +const val EXTRA_COLUMNS_ERROR_MESSAGE = + "The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)" @Suppress("unused") @Deprecated( - "The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)", + EXTRA_COLUMNS_ERROR_MESSAGE, ReplaceWith("sortBy"), DeprecationLevel.ERROR ) fun ParamsCollector.extraColumns(orders: List): Nothing = - error("The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)") + error(EXTRA_COLUMNS_ERROR_MESSAGE) @Suppress("unused") @Deprecated( - "The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)", + EXTRA_COLUMNS_ERROR_MESSAGE, ReplaceWith("sortBy"), DeprecationLevel.ERROR ) fun ParamsCollector.extraColumns(vararg orders: Order): Nothing = - error("The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)") + error(EXTRA_COLUMNS_ERROR_MESSAGE) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt index 4a16958..c53ebbe 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt @@ -8,7 +8,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable enum class Vendor( override val prettyName: String, override val fullName: String, - override val paramValue: Long + override val paramValue: Long, ) : RcdbParamOption, RcdbItem { YAQIAO_MACHINE("Yaqiao", "Yaqiao Machine", 6471), CREDIBLE("Credible", 6584), @@ -118,7 +118,7 @@ enum class Vendor( TAKAHASHI_KIKAI_SANGYO("Takahashi Kikai Sangyo", 7472), DYNAMIC("Dynamic Attractions", 7489), GOLDEN_HORSE("Golden Horse", 7492), - WIEGAND("Wiegand", "Josef Wiegand GmbH & Co. KG", 7514), + WIEGAND("Wiegand", 7514), ASCOT("Ascot Design", 7530), DAL_AMUSEMENT_RIDES("DAL Amusement Rides Company", 7536), CHILDRESS_COASTER("Childress Coaster", 7550), @@ -255,9 +255,12 @@ enum class Vendor( fun searchByName(name: String): List { val searchName = name.toLowerCase() - return values().filter { - it.fullName.toLowerCase().contains(searchName) - }.toList() + return values() + .filter { + it.fullName + .toLowerCase() + .contains(searchName) + }.toList() } } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt index 66b866a..5a8986e 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt @@ -8,10 +8,5 @@ class VendorBuilder : MultiParamBuilder() { return this } - fun of(vendor: Vendor) = this.add(vendor) - fun vekoma() = this.add(Vendor.VEKOMA) - fun intamin() = this.add(Vendor.INTAMIN) - fun mack() = this.add(Vendor.MACK) - fun bandm() = this.add(Vendor.B_AND_M) - fun gerstlauer() = this.add(Vendor.GERSTLAUER) + override fun Vendor.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt index 0fe5f20..5a36515 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.vendor -import de.pheerai.rcdbquery.dsl.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.ParamsCollector // TODO: Try to generify. This is currently lacking some sort of "This interface requires a companion implementing that interface" fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector { diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt new file mode 100644 index 0000000..cf591a0 --- /dev/null +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt @@ -0,0 +1,48 @@ +package de.pheerai.rcdbquery.dsl.params + +import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption +import de.pheerai.rcdbquery.dataMappings.searchType.SearchType +import de.pheerai.rcdbquery.dsl.RcdbParams + +class ParamsCollector { + private val multiParams: MutableMap>> = mutableMapOf() + private val singleParams: MutableMap> = mutableMapOf() + + fun build() = RcdbParams(buildMulti(), buildSingle()) + + /** + * Creates the Query Params from this builder. + * If no Search type has been set, this will default to "Coaster" + */ + private fun buildMulti() = multiParams.apply { + // Defaults go here, if any + } + .filter { it.value.isNotEmpty() } + .mapValues { e -> e.value.map { o -> o.paramValue.toString() } } + .let { MultiParams(it) } + + private fun buildSingle() = singleParams.apply { + putIfAbsent(SearchType.paramKey, SearchType.COASTER) + } + .mapValues { e -> e.value.paramValue.toString() } + .let { SingleParams(it) } + + operator fun set(paramName: String, options: List>) { + this.multiParams[paramName] = options + } + + operator fun set(paramName: String, option: RcdbParamOption) { + if (paramName !in singleParams && paramName !in multiParams) { + this.singleParams[paramName] = option + } else { + throw ParamAlreadySetException("Parameter $paramName already set.") + } + } + + fun getSingle(paramName: String) = this.multiParams[paramName] ?: this.singleParams[paramName] + fun getMulti(paramName: String) = this.multiParams[paramName] + + fun keys() = this.multiKeys().plus(singleKeys()) + private fun multiKeys() = this.multiParams.keys.toSet() + private fun singleKeys() = this.singleParams.keys.toSet() +} diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt new file mode 100644 index 0000000..b144c14 --- /dev/null +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt @@ -0,0 +1,8 @@ +package de.pheerai.rcdbquery.dsl.params + +sealed class BaseParams { + abstract val params: Map +} + +class MultiParams(override val params: Map>) : BaseParams>() +class SingleParams(override val params: Map) : BaseParams() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt new file mode 100644 index 0000000..f3c485d --- /dev/null +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt @@ -0,0 +1,3 @@ +package de.pheerai.rcdbquery.dsl.params + +class ParamAlreadySetException(message: String) : IllegalArgumentException(message) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt index 0ca5f9d..31a5217 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt @@ -1,19 +1,19 @@ package de.pheerai.rcdbquery.dsl -import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption -import de.pheerai.rcdbquery.dataMappings.searchType.SearchType - -// TODO: Restructure +import de.pheerai.rcdbquery.dsl.params.MultiParams +import de.pheerai.rcdbquery.dsl.params.ParamsCollector +import de.pheerai.rcdbquery.dsl.params.SingleParams data class RcdbParams( val multiParams: MultiParams, - val singleParams: SingleParams + val singleParams: SingleParams, ) { fun toStrings(): List { val multiParamSequence: Sequence> = this.multiParams .params + .mapValues { it.value.joinToString(separator = ",") } + .map { it.toPair() } .asSequence() - .map { e -> e.key to e.value.joinToString(separator = ",") } val singleParamSequence: Sequence> = this.singleParams .params .asSequence() @@ -24,58 +24,6 @@ data class RcdbParams( } } -sealed class Params { - abstract val params: Map -} - -class ParamAlreadySetException(message: String) : IllegalArgumentException(message) - -class MultiParams(override val params: Map>) : Params>() -class SingleParams(override val params: Map) : Params() - -class ParamsCollector { - private val multiParams: MutableMap>> = mutableMapOf() - private val singleParams: MutableMap> = mutableMapOf() - - fun build() = RcdbParams(buildMulti(), buildSingle()) - - /** - * Creates the Query Params from this builder. - * If no Search type has been set, this will default to "Coaster" - */ - private fun buildMulti() = multiParams.apply { - // Defaults go here, if any - } - .filter { it.value.isNotEmpty() } - .mapValues { e -> e.value.map { o -> o.paramValue.toString() } } - .let { MultiParams(it) } - - private fun buildSingle() = singleParams.apply { - putIfAbsent(SearchType.paramKey, SearchType.COASTER) - } - .mapValues { e -> e.value.paramValue.toString() } - .let { SingleParams(it) } - - operator fun set(paramName: String, options: List>) { - this.multiParams[paramName] = options - } - - operator fun set(paramName: String, option: RcdbParamOption) { - if (paramName !in singleParams && paramName !in multiParams) { - this.singleParams[paramName] = option - } else { - throw ParamAlreadySetException("Parameter $paramName already set.") - } - } - - fun getSingle(paramName: String) = this.multiParams[paramName] ?: this.singleParams[paramName] - fun getMulti(paramName: String) = this.multiParams[paramName] - - fun keys() = this.multiKeys().plus(singleKeys()) - private fun multiKeys() = this.multiParams.keys.toSet() - private fun singleKeys() = this.singleParams.keys.toSet() -} - fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector) = RcdbUrlQuery("https://www.rcdb.com/r.htm?", rcdbQueryParams(body)).toString() diff --git a/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt b/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt new file mode 100644 index 0000000..c333aae --- /dev/null +++ b/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt @@ -0,0 +1,7 @@ +package de.pheerai.rcdbquery + +import io.kotest.core.config.AbstractProjectConfig + +class TestConfig : AbstractProjectConfig() { + override val globalAssertSoftly = true +} diff --git a/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt b/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt index af911c3..71ab8e1 100644 --- a/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt +++ b/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt @@ -1,38 +1,57 @@ package de.pheerai.rcdbquery.dsl -import de.pheerai.rcdbquery.dataMappings.vendor.Vendor +import de.pheerai.rcdbquery.dataMappings.order.Order import de.pheerai.rcdbquery.dataMappings.order.sortBy +import de.pheerai.rcdbquery.dataMappings.searchType.SearchType +import de.pheerai.rcdbquery.dataMappings.searchType.searchType +import de.pheerai.rcdbquery.dataMappings.type.Type +import de.pheerai.rcdbquery.dataMappings.type.type +import de.pheerai.rcdbquery.dataMappings.vendor.Vendor import de.pheerai.rcdbquery.dataMappings.vendor.vendors +import de.pheerai.rcdbquery.dsl.params.ParamAlreadySetException +import io.kotest.assertions.asClue import io.kotest.core.spec.style.StringSpec -import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldContain +import io.kotest.matchers.string.shouldHaveLength +import org.junit.jupiter.api.assertThrows class RcdbQueryDslTest : StringSpec({ - "should generate a proper URL" { - val actual = rcdbQuery { + rcdbQuery { vendors { - vekoma() - mack() - of(Vendor.MAURER) + Vendor.VEKOMA() + Vendor.MACK() + Vendor.MAURER() } sortBy { - inversions() - manufacturer() + Order.INVERSIONS() + Order.MANUFACTURER() + } + }.asClue { + it shouldHaveLength 61 + it shouldContain "https://www.rcdb.com/r.htm?" + it shouldContain "mk=" + it shouldContain "6836" + it shouldContain "6856" + it shouldContain "6905" + it shouldContain "order=" + it shouldContain "24" + it shouldContain "30" + it shouldContain "ot=2" + it.filter { c -> c == '&' } shouldHaveLength 2 + } + } + + "Should throw if unique value is reset" { + assertThrows { + rcdbQuery { + searchType(SearchType.COASTER) + type { + Type.WOOD() + } + searchType(SearchType.AMUSEMENT_PARK) } } - - actual.length shouldBe 61 - actual.shouldContain("https://www.rcdb.com/r.htm?") - actual.shouldContain("mk=") - actual.shouldContain("6836") - actual.shouldContain("6856") - actual.shouldContain("6905") - actual.shouldContain("order=") - actual.shouldContain("24") - actual.shouldContain("30") - actual.shouldContain("ot=2") - actual.filter { it == '&' }.length shouldBe 2 } }) From a9f4740f0c666d21d934e3543d9dda51a7a3c313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Fri, 28 Aug 2020 21:31:46 +0200 Subject: [PATCH 2/7] Update dependencies. --- build.gradle.kts | 3 --- src/main/kotlin/module-info.java | 1 + src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt | 3 +++ .../kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt | 7 ++++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3a270b6..62476da 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,8 +32,6 @@ java { } dependencies { - implementation(kotlin("stdlib-jdk8")) - testImplementation( group = "io.kotest", name = "kotest-runner-junit5-jvm", @@ -49,7 +47,6 @@ dependencies { tasks { withType().configureEach { kotlinOptions { -// freeCompilerArgs = listOf("-XXLanguage:+InlineClasses") apiVersion = getFromExtra("kotlinApiVersion") languageVersion = getFromExtra("kotlinApiVersion") jvmTarget = getFromExtra("javaVersion").toString() diff --git a/src/main/kotlin/module-info.java b/src/main/kotlin/module-info.java index 4025e2e..94ec0e1 100644 --- a/src/main/kotlin/module-info.java +++ b/src/main/kotlin/module-info.java @@ -13,6 +13,7 @@ module rcdbquery.main { exports de.pheerai.rcdbquery.dataMappings.type; exports de.pheerai.rcdbquery.dataMappings.vendor; exports de.pheerai.rcdbquery.dsl; + exports de.pheerai.rcdbquery.dsl.params; requires kotlin.stdlib; } diff --git a/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt b/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt index c333aae..b20ef87 100644 --- a/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt +++ b/src/test/kotlin/de/pheerai/rcdbquery/TestConfig.kt @@ -5,3 +5,6 @@ import io.kotest.core.config.AbstractProjectConfig class TestConfig : AbstractProjectConfig() { override val globalAssertSoftly = true } + +// Just for IJ to stop whining about unused classes +annotation class Spec() diff --git a/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt b/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt index 71ab8e1..e79449d 100644 --- a/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt +++ b/src/test/kotlin/de/pheerai/rcdbquery/dsl/RcdbQueryDslTest.kt @@ -1,5 +1,6 @@ package de.pheerai.rcdbquery.dsl +import de.pheerai.rcdbquery.Spec import de.pheerai.rcdbquery.dataMappings.order.Order import de.pheerai.rcdbquery.dataMappings.order.sortBy import de.pheerai.rcdbquery.dataMappings.searchType.SearchType @@ -10,11 +11,12 @@ import de.pheerai.rcdbquery.dataMappings.vendor.Vendor import de.pheerai.rcdbquery.dataMappings.vendor.vendors import de.pheerai.rcdbquery.dsl.params.ParamAlreadySetException import io.kotest.assertions.asClue +import io.kotest.assertions.throwables.shouldThrow import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.string.shouldContain import io.kotest.matchers.string.shouldHaveLength -import org.junit.jupiter.api.assertThrows +@Spec class RcdbQueryDslTest : StringSpec({ "should generate a proper URL" { rcdbQuery { @@ -43,7 +45,7 @@ class RcdbQueryDslTest : StringSpec({ } "Should throw if unique value is reset" { - assertThrows { + shouldThrow { rcdbQuery { searchType(SearchType.COASTER) type { @@ -54,4 +56,3 @@ class RcdbQueryDslTest : StringSpec({ } } }) - From cba501824f6cec54988aac5bd691965f65f5df70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sun, 20 Sep 2020 12:24:18 +0200 Subject: [PATCH 3/7] Use bom for dependencies. --- build.gradle.kts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 62476da..5031282 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { extra.apply { - set("kotestVersion", "4.2.0") + set("pheeraiBomVersion", "0.0.1-SNAPSHOT") set("kotlinApiVersion", "1.4") set("javaVersion", JavaVersion.VERSION_11) } @@ -21,6 +21,14 @@ plugins { repositories { mavenCentral() + jcenter() + google() + mavenLocal { + mavenContent { + includeGroup("de.pheerai") + includeGroup("de.pheerai.eap") + } + } } project.version = "0.0.2" @@ -32,16 +40,9 @@ java { } dependencies { - testImplementation( - group = "io.kotest", - name = "kotest-runner-junit5-jvm", - version = getFromExtra("kotestVersion") - ) - testImplementation( - group = "io.kotest", - name = "kotest-assertions-core-jvm", - version = getFromExtra("kotestVersion") - ) + implementation(enforcedPlatform("de.pheerai:kotlin-native-app-bom:${getFromExtra("pheeraiBomVersion")}")) + testImplementation("io.kotest", "kotest-runner-junit5-jvm") + testImplementation("io.kotest", "kotest-assertions-core-jvm") } tasks { @@ -66,7 +67,6 @@ publishing { version = project.version as String from(components["java"]) - } } } From bdd8c1d7d95506a1eded047ed69e295bdb431771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sat, 6 Mar 2021 14:53:28 +0100 Subject: [PATCH 4/7] Update & use gitlab registry --- build.gradle.kts | 13 ++++++++++--- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5031282..5f6169a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,9 @@ +import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { extra.apply { - set("pheeraiBomVersion", "0.0.1-SNAPSHOT") + set("pheeraiBomVersion", "0.0.3-SNAPSHOT") set("kotlinApiVersion", "1.4") set("javaVersion", JavaVersion.VERSION_11) } @@ -23,7 +24,8 @@ repositories { mavenCentral() jcenter() google() - mavenLocal { + maven { + url = uri("https://git.f3l.de/api/v4/projects/160/packages/maven") mavenContent { includeGroup("de.pheerai") includeGroup("de.pheerai.eap") @@ -39,8 +41,13 @@ java { sourceCompatibility = getFromExtra("javaVersion") } +kotlin { + explicitApi = ExplicitApiMode.Strict +} + dependencies { - implementation(enforcedPlatform("de.pheerai:kotlin-native-app-bom:${getFromExtra("pheeraiBomVersion")}")) + implementation(enforcedPlatform("de.pheerai:kotlin-crawler-app-bom:${getFromExtra("pheeraiBomVersion")}")) + testImplementation("io.kotest", "kotest-runner-junit5-jvm") testImplementation("io.kotest", "kotest-assertions-core-jvm") } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bb8b2fc..442d913 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index abccebe..75c042b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,6 @@ pluginManagement { plugins { - kotlin("jvm") version "1.4.0" + kotlin("jvm") version "1.4.30" } } From 00f74792d5c03206ab6edfdd3ea7e27682dfa8bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sat, 6 Mar 2021 14:53:49 +0100 Subject: [PATCH 5/7] Adoptions to explicit API (WIP) --- src/main/kotlin/de/pheerai/rcdbquery/Sample.kt | 6 +++--- .../pheerai/rcdbquery/dataMappings/category/Category.kt | 4 ++-- .../rcdbquery/dataMappings/category/CategoryBuilder.kt | 2 +- .../rcdbquery/dataMappings/category/paramBuilder.kt | 2 +- .../dataMappings/classification/Classification.kt | 2 +- .../dataMappings/classification/ClassificationBuilder.kt | 2 +- .../rcdbquery/dataMappings/classification/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/design/Design.kt | 2 +- .../rcdbquery/dataMappings/design/DesignBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/design/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/internal/MultiParamBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/internal/ParamKey.kt | 2 +- .../pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt | 2 +- .../rcdbquery/dataMappings/internal/RcdbParamOption.kt | 2 +- .../rcdbquery/dataMappings/internal/RelevantForAll.kt | 2 +- .../rcdbquery/dataMappings/internal/StringGeneratable.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/layout/Layout.kt | 2 +- .../rcdbquery/dataMappings/layout/LayoutBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/order/Order.kt | 7 +++---- .../pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt | 4 ++-- .../pheerai/rcdbquery/dataMappings/order/paramBuilder.kt | 2 +- .../kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt | 2 +- .../pheerai/rcdbquery/dataMappings/page/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/searchTerm/SearchTerm.kt | 2 +- .../rcdbquery/dataMappings/searchTerm/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/searchType/SearchType.kt | 2 +- .../rcdbquery/dataMappings/searchType/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/startsWith/StartsWith.kt | 2 +- .../rcdbquery/dataMappings/startsWith/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/status/Status.kt | 2 +- .../rcdbquery/dataMappings/status/StatusBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/status/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt | 2 +- .../rcdbquery/dataMappings/thrill/ThrillBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt | 2 +- .../kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/type/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/unknownParams.kt | 6 +++--- .../de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt | 2 +- .../rcdbquery/dataMappings/vendor/VendorBuilder.kt | 4 ++-- .../pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt | 2 +- .../kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt | 2 +- src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt | 6 +++--- .../kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt | 2 +- src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt | 8 ++++---- src/main/kotlin/module-info.java | 2 ++ 48 files changed, 63 insertions(+), 62 deletions(-) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt index 78b389d..df7c6d8 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt @@ -10,12 +10,12 @@ import de.pheerai.rcdbquery.dataMappings.vendor.Vendor.* import de.pheerai.rcdbquery.dataMappings.vendor.vendors import de.pheerai.rcdbquery.dsl.rcdbQuery -fun main() { +public fun main() { println(generateNameQueryUrl()) println(generatePageQueryUrl()) } -fun generateNameQueryUrl() = rcdbQuery { +private fun generateNameQueryUrl() = rcdbQuery { searchType(SearchType.COASTER) searchTerm("Dragon") vendors { @@ -29,7 +29,7 @@ fun generateNameQueryUrl() = rcdbQuery { } } -fun generatePageQueryUrl() = rcdbQuery { +private fun generatePageQueryUrl() = rcdbQuery { page(3) searchType(SearchType.COASTER) vendors { diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt index 89ed396..810a0fb 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.category import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -enum class Category( +public enum class Category( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -38,7 +38,7 @@ enum class Category( constructor(name: String, paramValue: Long) : this(name, name, paramValue) - companion object : StringGeneratable { + internal companion object : StringGeneratable { override val paramKey = "ca" override fun of(input: String): Category? = when (input) { "4th Dimension" -> FOURTH_DIMENSION diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt index 9571d0f..dc2c7cd 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.category import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class CategoryBuilder : MultiParamBuilder() { +internal class CategoryBuilder : MultiParamBuilder() { override fun add(param: Category): CategoryBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt index 323cbcc..fa4c50c 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.category import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector { +private fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector { val builder = CategoryBuilder() builder.body() this[Category.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt index 6d471b9..d10511e 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.classification import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -enum class Classification( +internal enum class Classification( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt index 9b8328b..93545b2 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.classification import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class ClassificationBuilder : MultiParamBuilder() { +internal class ClassificationBuilder : MultiParamBuilder() { override fun add(param: Classification): ClassificationBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt index 14d7410..bb75f92 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.classification import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector { +private fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector { val builder = ClassificationBuilder() builder.body() this[Classification.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt index 2ac4369..ebb322d 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.design import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -enum class Design( +internal enum class Design( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt index 237130d..99f1e86 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.design import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class DesignBuilder : MultiParamBuilder() { +internal class DesignBuilder : MultiParamBuilder() { override fun add(param: Design): DesignBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt index e94d32c..e6df028 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.design import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector { +private fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector { val builder = DesignBuilder() builder.body() this[Design.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt index e1cbe56..c496efe 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.internal -abstract class MultiParamBuilder> { +internal abstract class MultiParamBuilder> { private val paramList: MutableList = mutableListOf() open fun add(param: T): MultiParamBuilder { diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt index 2e32fc6..205978d 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt @@ -1,5 +1,5 @@ package de.pheerai.rcdbquery.dataMappings.internal -interface ParamKey { +internal interface ParamKey { val paramKey: String } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt index 575408f..913bb42 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.internal -interface RcdbItem { +internal interface RcdbItem { val url: String get() ="https://www.rcdb.com/${id}.htm" val id: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt index 98f1ed6..bd63d3b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt @@ -1,6 +1,6 @@ package de.pheerai.rcdbquery.dataMappings.internal -interface RcdbParamOption { +internal interface RcdbParamOption { val prettyName: String val fullName: String val paramValue: T diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt index fdd6d7c..a744af0 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt @@ -1,5 +1,5 @@ package de.pheerai.rcdbquery.dataMappings.internal -interface RelevantForAll { +internal interface RelevantForAll { val relevantForAll: Boolean } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt index 56762a5..071fd22 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt @@ -1,5 +1,5 @@ package de.pheerai.rcdbquery.dataMappings.internal -interface StringGeneratable: ParamKey { +internal interface StringGeneratable: ParamKey { fun of(input: String): T? } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt index f6bf566..3714457 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.layout import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -enum class Layout( +internal enum class Layout( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt index 6f75765..ca24477 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.layout import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class LayoutBuilder : MultiParamBuilder() { +internal class LayoutBuilder : MultiParamBuilder() { override fun add(param: Layout): LayoutBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt index 611b9e2..f0bc40a 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.layout import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector { +private fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector { val builder = LayoutBuilder() with(Layout) { builder.body() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt index fee5bdf..9125f3f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt @@ -3,14 +3,13 @@ package de.pheerai.rcdbquery.dataMappings.order import de.pheerai.rcdbquery.dataMappings.internal.ParamKey import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.RelevantForAll -import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable @Suppress("unused") -enum class Order( +internal enum class Order( override val prettyName: String, override val fullName: String, override val paramValue: Long, - override val relevantForAll: Boolean = true + override val relevantForAll: Boolean = true, ) : RcdbParamOption, RelevantForAll { IMAGES("Images", "Amount of Images", 0), @@ -50,7 +49,7 @@ enum class Order( constructor(name: String, paramId: Long) : this(name, name, paramId) - companion object: ParamKey { + companion object : ParamKey { override val paramKey = "order" } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt index 79570f2..cbfcdf9 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.order import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class OrderBuilder : MultiParamBuilder() { +internal class OrderBuilder : MultiParamBuilder() { override fun add(param: Order): OrderBuilder { super.add(param) return this @@ -18,6 +18,6 @@ class OrderBuilder : MultiParamBuilder() { return this } - override fun Order.invoke() = add(this) + override operator fun Order.invoke() = add(this) fun allRelevant() = this.addAll(Order.values().filter { it.relevantForAll }) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt index 2c205ee..719d0b3 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.order import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector { +internal fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector { val builder = OrderBuilder() builder.body() this[Order.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt index d54ba1b..b686b42 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.page import de.pheerai.rcdbquery.dataMappings.internal.ParamKey import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption -class Page(override val paramValue: Long) : +internal class Page(override val paramValue: Long) : RcdbParamOption { override val fullName = "The page to show" override val prettyName = "Page" diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt index 4cf3d14..fbe5a3b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.page import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.page(page: Long) = also { +internal fun ParamsCollector.page(page: Long) = also { this[Page.paramKey] = Page(page) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt index 37e4694..13f631f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.searchTerm import de.pheerai.rcdbquery.dataMappings.internal.ParamKey import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption -class SearchTerm(override val paramValue: String) : +internal class SearchTerm(override val paramValue: String) : RcdbParamOption { override val prettyName = "Search Term" override val fullName = "Search for elements whose name contain this term" diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt index ab3d49f..130dc5b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.searchTerm import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.searchTerm(term: String) = also { +internal fun ParamsCollector.searchTerm(term: String) = also { it[SearchTerm.paramKey] = listOf( SearchTerm(term) ) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt index 3ef74f4..35234dd 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt @@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.ParamKey import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption @Suppress("unused") -enum class SearchType( +internal enum class SearchType( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt index 08fb494..2630b1b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt @@ -2,6 +2,6 @@ package de.pheerai.rcdbquery.dataMappings.searchType import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.searchType(searchType: SearchType) = also { +internal fun ParamsCollector.searchType(searchType: SearchType) = also { it[SearchType.paramKey] = searchType } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt index 42eb629..ba2382c 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt @@ -5,7 +5,7 @@ package de.pheerai.rcdbquery.dataMappings.startsWith import de.pheerai.rcdbquery.dataMappings.internal.ParamKey import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption -class StartsWith(override val paramValue: String) : +internal class StartsWith(override val paramValue: String) : RcdbParamOption { override val prettyName = "Starts with" override val fullName = "Name starting with term" diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt index f23422a..ef3b914 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.startsWith import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.startsWith(term: String) = also { +internal fun ParamsCollector.startsWith(term: String) = also { this[StartsWith.paramKey] = StartsWith(term) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt index 8462287..1fd4911 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt @@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable @Suppress("unused") -enum class Status( +internal enum class Status( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt index 752da5b..ad27919 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.status import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class StatusBuilder : MultiParamBuilder() { +internal class StatusBuilder : MultiParamBuilder() { override fun add(param: Status): StatusBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt index 7fd8830..582f40b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.status import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector { +private fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector { val builder = StatusBuilder() builder.body() this[Status.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt index 940ec2b..e7cbd62 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -enum class Thrill( +internal enum class Thrill( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt index 7dab9e9..5ab3de9 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class ThrillBuilder : MultiParamBuilder() { +internal class ThrillBuilder : MultiParamBuilder() { override fun add(param: Thrill): ThrillBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt index da3ba1b..5e20ffe 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { +private fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { val builder = ThrillBuilder() builder.body() this[Thrill.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt index 620c801..033f638 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.type import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -enum class Type( +internal enum class Type( override val prettyName: String, override val fullName: String, override val paramValue: Long diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt index fd0fccd..570ac1b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.type import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class TypeBuilder : MultiParamBuilder() { +internal class TypeBuilder : MultiParamBuilder() { override fun add(param: Type): TypeBuilder { super.add(param) return this diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt index db509eb..e961ba5 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.type import de.pheerai.rcdbquery.dsl.params.ParamsCollector -fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector { +private fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector { val builder = TypeBuilder() builder.body() this[Type.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt index fe72e91..adc2ce4 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings import de.pheerai.rcdbquery.dataMappings.order.Order import de.pheerai.rcdbquery.dsl.params.ParamsCollector -const val EXTRA_COLUMNS_ERROR_MESSAGE = +public const val EXTRA_COLUMNS_ERROR_MESSAGE: String = "The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)" @Suppress("unused") @@ -11,7 +11,7 @@ const val EXTRA_COLUMNS_ERROR_MESSAGE = EXTRA_COLUMNS_ERROR_MESSAGE, ReplaceWith("sortBy"), DeprecationLevel.ERROR ) -fun ParamsCollector.extraColumns(orders: List): Nothing = +internal fun ParamsCollector.extraColumns(orders: List): Nothing = error(EXTRA_COLUMNS_ERROR_MESSAGE) @Suppress("unused") @@ -19,5 +19,5 @@ fun ParamsCollector.extraColumns(orders: List): Nothing = EXTRA_COLUMNS_ERROR_MESSAGE, ReplaceWith("sortBy"), DeprecationLevel.ERROR ) -fun ParamsCollector.extraColumns(vararg orders: Order): Nothing = +internal fun ParamsCollector.extraColumns(vararg orders: Order): Nothing = error(EXTRA_COLUMNS_ERROR_MESSAGE) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt index c53ebbe..9f4694f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt @@ -5,7 +5,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable @Suppress("unused") -enum class Vendor( +internal enum class Vendor( override val prettyName: String, override val fullName: String, override val paramValue: Long, diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt index 5a8986e..852797c 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.vendor import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -class VendorBuilder : MultiParamBuilder() { +internal class VendorBuilder : MultiParamBuilder() { override fun add(param: Vendor): VendorBuilder { super.add(param) return this } - override fun Vendor.invoke() = add(this) + override operator fun Vendor.invoke() = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt index 5a36515..3aca8f2 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.vendor import de.pheerai.rcdbquery.dsl.params.ParamsCollector // TODO: Try to generify. This is currently lacking some sort of "This interface requires a companion implementing that interface" -fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector { +internal fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector { val builder = VendorBuilder() builder.body() this[Vendor.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt index cf591a0..90e3bba 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt @@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.searchType.SearchType import de.pheerai.rcdbquery.dsl.RcdbParams -class ParamsCollector { +internal class ParamsCollector { private val multiParams: MutableMap>> = mutableMapOf() private val singleParams: MutableMap> = mutableMapOf() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt index b144c14..df5f03e 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt @@ -1,8 +1,8 @@ package de.pheerai.rcdbquery.dsl.params -sealed class BaseParams { +internal sealed class BaseParams { abstract val params: Map } -class MultiParams(override val params: Map>) : BaseParams>() -class SingleParams(override val params: Map) : BaseParams() +internal class MultiParams(override val params: Map>) : BaseParams>() +internal class SingleParams(override val params: Map) : BaseParams() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt index f3c485d..f832174 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt @@ -1,3 +1,3 @@ package de.pheerai.rcdbquery.dsl.params -class ParamAlreadySetException(message: String) : IllegalArgumentException(message) +internal class ParamAlreadySetException(message: String) : IllegalArgumentException(message) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt index 31a5217..83f799e 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt @@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dsl.params.MultiParams import de.pheerai.rcdbquery.dsl.params.ParamsCollector import de.pheerai.rcdbquery.dsl.params.SingleParams -data class RcdbParams( +internal data class RcdbParams( val multiParams: MultiParams, val singleParams: SingleParams, ) { @@ -24,10 +24,10 @@ data class RcdbParams( } } -fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector) = +internal fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector) = RcdbUrlQuery("https://www.rcdb.com/r.htm?", rcdbQueryParams(body)).toString() -data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) { +private data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) { override fun toString(): String { return params.toStrings() .joinToString(prefix = baseUrl, separator = "&") @@ -37,7 +37,7 @@ data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) { /** * Builder for the parameters only (mainly because it might be possilbe in the future to have an API with a POST search object? */ -fun rcdbQueryParams(body: ParamsCollector.() -> ParamsCollector): RcdbParams { +private fun rcdbQueryParams(body: ParamsCollector.() -> ParamsCollector): RcdbParams { val builder = ParamsCollector() builder.body() return builder.build() diff --git a/src/main/kotlin/module-info.java b/src/main/kotlin/module-info.java index 94ec0e1..fe982a7 100644 --- a/src/main/kotlin/module-info.java +++ b/src/main/kotlin/module-info.java @@ -1,6 +1,7 @@ module rcdbquery.main { exports de.pheerai.rcdbquery.dataMappings.category; exports de.pheerai.rcdbquery.dataMappings.classification; + exports de.pheerai.rcdbquery.dataMappings; exports de.pheerai.rcdbquery.dataMappings.design; exports de.pheerai.rcdbquery.dataMappings.layout; exports de.pheerai.rcdbquery.dataMappings.order; @@ -16,4 +17,5 @@ module rcdbquery.main { exports de.pheerai.rcdbquery.dsl.params; requires kotlin.stdlib; + requires java.base; } From f3944d01d339bcb715cc29ee924f06508b07068a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sat, 6 Mar 2021 15:09:31 +0100 Subject: [PATCH 6/7] Make API visible again. --- .../dataMappings/category/CategoryBuilder.kt | 4 ++-- .../dataMappings/category/paramBuilder.kt | 2 +- .../dataMappings/classification/Classification.kt | 8 ++++---- .../classification/ClassificationBuilder.kt | 4 ++-- .../dataMappings/classification/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/design/Design.kt | 6 +++--- .../rcdbquery/dataMappings/design/DesignBuilder.kt | 4 ++-- .../rcdbquery/dataMappings/design/paramBuilder.kt | 2 +- .../dataMappings/internal/MultiParamBuilder.kt | 8 ++++---- .../dataMappings/internal/RcdbParamOption.kt | 8 ++++---- .../rcdbquery/dataMappings/layout/Layout.kt | 6 +++--- .../rcdbquery/dataMappings/layout/LayoutBuilder.kt | 4 ++-- .../rcdbquery/dataMappings/layout/paramBuilder.kt | 2 +- .../pheerai/rcdbquery/dataMappings/order/Order.kt | 6 +++--- .../rcdbquery/dataMappings/order/OrderBuilder.kt | 6 +++--- .../rcdbquery/dataMappings/order/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/page/paramBuilder.kt | 2 +- .../dataMappings/searchTerm/paramBuilder.kt | 2 +- .../dataMappings/searchType/SearchType.kt | 6 +++--- .../dataMappings/searchType/paramBuilder.kt | 2 +- .../dataMappings/startsWith/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/status/Status.kt | 8 ++++---- .../rcdbquery/dataMappings/status/StatusBuilder.kt | 4 ++-- .../rcdbquery/dataMappings/status/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/thrill/Thrill.kt | 6 +++--- .../rcdbquery/dataMappings/thrill/ThrillBuilder.kt | 4 ++-- .../rcdbquery/dataMappings/thrill/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dataMappings/type/Type.kt | 8 ++++---- .../rcdbquery/dataMappings/type/TypeBuilder.kt | 4 ++-- .../rcdbquery/dataMappings/type/paramBuilder.kt | 2 +- .../rcdbquery/dataMappings/unknownParams.kt | 4 ++-- .../rcdbquery/dataMappings/vendor/Vendor.kt | 10 +++++----- .../rcdbquery/dataMappings/vendor/VendorBuilder.kt | 4 ++-- .../rcdbquery/dataMappings/vendor/paramBuilder.kt | 2 +- .../de/pheerai/rcdbquery/dsl/params/Collector.kt | 14 +++++++------- .../de/pheerai/rcdbquery/dsl/params/Params.kt | 8 ++++---- .../de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt | 12 ++++++------ 37 files changed, 91 insertions(+), 91 deletions(-) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt index dc2c7cd..7791c40 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.category import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class CategoryBuilder : MultiParamBuilder() { +public class CategoryBuilder : MultiParamBuilder() { override fun add(param: Category): CategoryBuilder { super.add(param) return this } - override fun Category.invoke() = add(this) + override fun Category.invoke(): CategoryBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt index fa4c50c..804cb8f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.category import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector { +public fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector { val builder = CategoryBuilder() builder.body() this[Category.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt index d10511e..5f26c96 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.classification import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -internal enum class Classification( +public enum class Classification( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -15,8 +15,8 @@ internal enum class Classification( constructor(name: String, paramValue: Long) : this(name, name, paramValue) - companion object: StringGeneratable { - override fun of(input: String) = values().find { it.fullName == input } - override val paramKey = "cs" + public companion object: StringGeneratable { + override fun of(input: String): Classification? = values().find { it.fullName == input } + override val paramKey: String = "cs" } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt index 93545b2..18cbc5a 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.classification import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class ClassificationBuilder : MultiParamBuilder() { +public class ClassificationBuilder : MultiParamBuilder() { override fun add(param: Classification): ClassificationBuilder { super.add(param) return this } - override fun Classification.invoke() = add(this) + override fun Classification.invoke(): ClassificationBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt index bb75f92..d483c8e 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.classification import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector { +public fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector { val builder = ClassificationBuilder() builder.body() this[Classification.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt index ebb322d..b0ecfc6 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.design import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -internal enum class Design( +public enum class Design( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -20,8 +20,8 @@ internal enum class Design( constructor(name: String, paramValue: Long) : this(name, name, paramValue) - companion object : StringGeneratable { - override val paramKey = "de" + public companion object : StringGeneratable { + override val paramKey: String = "de" override fun of(input: String): Design? = when (input) { "Sit Down" -> SIT_DOWN "Inverted" -> INVERTED diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt index 99f1e86..0bafb99 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.design import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class DesignBuilder : MultiParamBuilder() { +public class DesignBuilder : MultiParamBuilder() { override fun add(param: Design): DesignBuilder { super.add(param) return this } - override fun Design.invoke() = add(this) + override fun Design.invoke(): DesignBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt index e6df028..3095a9b 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.design import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector { +public fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector { val builder = DesignBuilder() builder.body() this[Design.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt index c496efe..5d04f01 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt @@ -1,9 +1,9 @@ package de.pheerai.rcdbquery.dataMappings.internal -internal abstract class MultiParamBuilder> { +public abstract class MultiParamBuilder> { private val paramList: MutableList = mutableListOf() - open fun add(param: T): MultiParamBuilder { + public open fun add(param: T): MultiParamBuilder { paramList.add(param) return this } @@ -18,7 +18,7 @@ internal abstract class MultiParamBuilder> { return this } - fun build() = paramList.toList() + public fun build(): List = paramList.toList() - abstract operator fun T.invoke(): MultiParamBuilder + public abstract operator fun T.invoke(): MultiParamBuilder } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt index bd63d3b..5134789 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt @@ -1,7 +1,7 @@ package de.pheerai.rcdbquery.dataMappings.internal -internal interface RcdbParamOption { - val prettyName: String - val fullName: String - val paramValue: T +public interface RcdbParamOption { + public val prettyName: String + public val fullName: String + public val paramValue: T } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt index 3714457..350a68c 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.layout import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -internal enum class Layout( +public enum class Layout( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -37,8 +37,8 @@ internal enum class Layout( constructor(name: String, paramValue: Long) : this(name, name, paramValue) - companion object : StringGeneratable { - override val paramKey = "lo" + public companion object : StringGeneratable { + override val paramKey: String = "lo" override fun of(input: String): Layout? = values().find { input == it.fullName } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt index ca24477..cac8fcd 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.layout import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class LayoutBuilder : MultiParamBuilder() { +public class LayoutBuilder : MultiParamBuilder() { override fun add(param: Layout): LayoutBuilder { super.add(param) return this } - override operator fun Layout.invoke() = add(this) + override operator fun Layout.invoke(): LayoutBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt index f0bc40a..edb8e1e 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.layout import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector { +public fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector { val builder = LayoutBuilder() with(Layout) { builder.body() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt index 9125f3f..640c3d1 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt @@ -5,7 +5,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.RelevantForAll @Suppress("unused") -internal enum class Order( +public enum class Order( override val prettyName: String, override val fullName: String, override val paramValue: Long, @@ -49,7 +49,7 @@ internal enum class Order( constructor(name: String, paramId: Long) : this(name, name, paramId) - companion object : ParamKey { - override val paramKey = "order" + public companion object : ParamKey { + override val paramKey: String = "order" } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt index cbfcdf9..80c2f42 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.order import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class OrderBuilder : MultiParamBuilder() { +public class OrderBuilder : MultiParamBuilder() { override fun add(param: Order): OrderBuilder { super.add(param) return this @@ -18,6 +18,6 @@ internal class OrderBuilder : MultiParamBuilder() { return this } - override operator fun Order.invoke() = add(this) - fun allRelevant() = this.addAll(Order.values().filter { it.relevantForAll }) + override operator fun Order.invoke(): OrderBuilder = add(this) + public fun allRelevant(): OrderBuilder = this.addAll(Order.values().filter { it.relevantForAll }) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt index 719d0b3..6f4148f 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.order import de.pheerai.rcdbquery.dsl.params.ParamsCollector -internal fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector { +public fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector { val builder = OrderBuilder() builder.body() this[Order.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt index fbe5a3b..549dc54 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.page import de.pheerai.rcdbquery.dsl.params.ParamsCollector -internal fun ParamsCollector.page(page: Long) = also { +public fun ParamsCollector.page(page: Long): ParamsCollector = also { this[Page.paramKey] = Page(page) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt index 130dc5b..3f5622a 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.searchTerm import de.pheerai.rcdbquery.dsl.params.ParamsCollector -internal fun ParamsCollector.searchTerm(term: String) = also { +public fun ParamsCollector.searchTerm(term: String): ParamsCollector = also { it[SearchTerm.paramKey] = listOf( SearchTerm(term) ) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt index 35234dd..6b9cc5c 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt @@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.ParamKey import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption @Suppress("unused") -internal enum class SearchType( +public enum class SearchType( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -15,7 +15,7 @@ internal enum class SearchType( PERSON("Person", "Search for a person (designer, engineer,...)", 13) ; - companion object: ParamKey { - override val paramKey = "ot" + public companion object: ParamKey { + override val paramKey: String = "ot" } } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt index 2630b1b..b746eff 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt @@ -2,6 +2,6 @@ package de.pheerai.rcdbquery.dataMappings.searchType import de.pheerai.rcdbquery.dsl.params.ParamsCollector -internal fun ParamsCollector.searchType(searchType: SearchType) = also { +public fun ParamsCollector.searchType(searchType: SearchType): ParamsCollector = also { it[SearchType.paramKey] = searchType } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt index ef3b914..8a54fbb 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.startsWith import de.pheerai.rcdbquery.dsl.params.ParamsCollector -internal fun ParamsCollector.startsWith(term: String) = also { +public fun ParamsCollector.startsWith(term: String): ParamsCollector = also { this[StartsWith.paramKey] = StartsWith(term) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt index 1fd4911..38b889a 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt @@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable @Suppress("unused") -internal enum class Status( +public enum class Status( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -18,10 +18,10 @@ internal enum class Status( constructor(name: String, paramId: Long) : this(name, name, paramId) - companion object: StringGeneratable { - override val paramKey = "st" + public companion object: StringGeneratable { + override val paramKey: String = "st" - override fun of(input: String) = when (input) { + override fun of(input: String): Status? = when (input) { "SBNO" -> SBNO "Operating" -> OPERATING "Under Construction" -> UNDER_CONSTRUCTION diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt index ad27919..41092b1 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.status import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class StatusBuilder : MultiParamBuilder() { +public class StatusBuilder : MultiParamBuilder() { override fun add(param: Status): StatusBuilder { super.add(param) return this } - override fun Status.invoke() = add(this) + override fun Status.invoke(): StatusBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt index 582f40b..4f84396 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.status import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector { +public fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector { val builder = StatusBuilder() builder.body() this[Status.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt index e7cbd62..4816970 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -internal enum class Thrill( +public enum class Thrill( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -16,8 +16,8 @@ internal enum class Thrill( constructor(name: String, paramValue: Long) : this(name, name, paramValue) - companion object : StringGeneratable { - override val paramKey = "sc" + public companion object : StringGeneratable { + override val paramKey: String = "sc" override fun of(input: String): Thrill? = when (input) { "Kiddie" -> KIDDIE diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt index 5ab3de9..410a5c9 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.thrill import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class ThrillBuilder : MultiParamBuilder() { +public class ThrillBuilder : MultiParamBuilder() { override fun add(param: Thrill): ThrillBuilder { super.add(param) return this } - override fun Thrill.invoke() = add(this) + override fun Thrill.invoke(): ThrillBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt index 5e20ffe..b661332 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { +public fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector { val builder = ThrillBuilder() builder.body() this[Thrill.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt index 033f638..0df1514 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.type import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable -internal enum class Type( +public enum class Type( override val prettyName: String, override val fullName: String, override val paramValue: Long @@ -14,10 +14,10 @@ internal enum class Type( constructor(name: String, paramValue: Long): this(name, name, paramValue) - companion object: StringGeneratable { - override val paramKey = "ty" + public companion object: StringGeneratable { + override val paramKey: String = "ty" - override fun of(input: String) = when(input) { + override fun of(input: String): Type? = when(input) { "Steel" -> STEEL "Wood" -> WOOD else -> null diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt index 570ac1b..c531135 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.type import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class TypeBuilder : MultiParamBuilder() { +public class TypeBuilder : MultiParamBuilder() { override fun add(param: Type): TypeBuilder { super.add(param) return this } - override fun Type.invoke() = add(this) + override fun Type.invoke(): TypeBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt index e961ba5..f0d9ebe 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt @@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.type import de.pheerai.rcdbquery.dsl.params.ParamsCollector -private fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector { +public fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector { val builder = TypeBuilder() builder.body() this[Type.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt index adc2ce4..b421da3 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt @@ -11,7 +11,7 @@ public const val EXTRA_COLUMNS_ERROR_MESSAGE: String = EXTRA_COLUMNS_ERROR_MESSAGE, ReplaceWith("sortBy"), DeprecationLevel.ERROR ) -internal fun ParamsCollector.extraColumns(orders: List): Nothing = +public fun ParamsCollector.extraColumns(orders: List): Nothing = error(EXTRA_COLUMNS_ERROR_MESSAGE) @Suppress("unused") @@ -19,5 +19,5 @@ internal fun ParamsCollector.extraColumns(orders: List): Nothing = EXTRA_COLUMNS_ERROR_MESSAGE, ReplaceWith("sortBy"), DeprecationLevel.ERROR ) -internal fun ParamsCollector.extraColumns(vararg orders: Order): Nothing = +public fun ParamsCollector.extraColumns(vararg orders: Order): Nothing = error(EXTRA_COLUMNS_ERROR_MESSAGE) diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt index 9f4694f..6e35f90 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt @@ -5,7 +5,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable @Suppress("unused") -internal enum class Vendor( +public enum class Vendor( override val prettyName: String, override val fullName: String, override val paramValue: Long, @@ -249,11 +249,11 @@ internal enum class Vendor( constructor(name: String, paramId: Long) : this(name, name, paramId) - companion object : StringGeneratable { - override val paramKey = "mk" - override fun of(input: String) = values().find { input == it.fullName } + public companion object : StringGeneratable { + override val paramKey: String = "mk" + override fun of(input: String): Vendor? = values().find { input == it.fullName } - fun searchByName(name: String): List { + public fun searchByName(name: String): List { val searchName = name.toLowerCase() return values() .filter { diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt index 852797c..d204798 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt @@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.vendor import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder -internal class VendorBuilder : MultiParamBuilder() { +public class VendorBuilder : MultiParamBuilder() { override fun add(param: Vendor): VendorBuilder { super.add(param) return this } - override operator fun Vendor.invoke() = add(this) + override operator fun Vendor.invoke(): VendorBuilder = add(this) } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt index 3aca8f2..bfc787d 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt @@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.vendor import de.pheerai.rcdbquery.dsl.params.ParamsCollector // TODO: Try to generify. This is currently lacking some sort of "This interface requires a companion implementing that interface" -internal fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector { +public fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector { val builder = VendorBuilder() builder.body() this[Vendor.paramKey] = builder.build() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt index 90e3bba..63fdeab 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt @@ -4,11 +4,11 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption import de.pheerai.rcdbquery.dataMappings.searchType.SearchType import de.pheerai.rcdbquery.dsl.RcdbParams -internal class ParamsCollector { +public class ParamsCollector { private val multiParams: MutableMap>> = mutableMapOf() private val singleParams: MutableMap> = mutableMapOf() - fun build() = RcdbParams(buildMulti(), buildSingle()) + public fun build(): RcdbParams = RcdbParams(buildMulti(), buildSingle()) /** * Creates the Query Params from this builder. @@ -27,11 +27,11 @@ internal class ParamsCollector { .mapValues { e -> e.value.paramValue.toString() } .let { SingleParams(it) } - operator fun set(paramName: String, options: List>) { + public operator fun set(paramName: String, options: List>) { this.multiParams[paramName] = options } - operator fun set(paramName: String, option: RcdbParamOption) { + public operator fun set(paramName: String, option: RcdbParamOption) { if (paramName !in singleParams && paramName !in multiParams) { this.singleParams[paramName] = option } else { @@ -39,10 +39,10 @@ internal class ParamsCollector { } } - fun getSingle(paramName: String) = this.multiParams[paramName] ?: this.singleParams[paramName] - fun getMulti(paramName: String) = this.multiParams[paramName] + public fun getSingle(paramName: String): Any? = this.multiParams[paramName] ?: this.singleParams[paramName] + public fun getMulti(paramName: String): List>? = this.multiParams[paramName] - fun keys() = this.multiKeys().plus(singleKeys()) + public fun keys(): Set = this.multiKeys().plus(singleKeys()) private fun multiKeys() = this.multiParams.keys.toSet() private fun singleKeys() = this.singleParams.keys.toSet() } diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt index df5f03e..c8ea78a 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt @@ -1,8 +1,8 @@ package de.pheerai.rcdbquery.dsl.params -internal sealed class BaseParams { - abstract val params: Map +public sealed class BaseParams { + public abstract val params: Map } -internal class MultiParams(override val params: Map>) : BaseParams>() -internal class SingleParams(override val params: Map) : BaseParams() +public class MultiParams(override val params: Map>) : BaseParams>() +public class SingleParams(override val params: Map) : BaseParams() diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt index 83f799e..d85f6c1 100644 --- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt +++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt @@ -4,11 +4,11 @@ import de.pheerai.rcdbquery.dsl.params.MultiParams import de.pheerai.rcdbquery.dsl.params.ParamsCollector import de.pheerai.rcdbquery.dsl.params.SingleParams -internal data class RcdbParams( - val multiParams: MultiParams, - val singleParams: SingleParams, +public data class RcdbParams( + private val multiParams: MultiParams, + private val singleParams: SingleParams, ) { - fun toStrings(): List { + public fun toStrings(): List { val multiParamSequence: Sequence> = this.multiParams .params .mapValues { it.value.joinToString(separator = ",") } @@ -24,7 +24,7 @@ internal data class RcdbParams( } } -internal fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector) = +public fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector): String = RcdbUrlQuery("https://www.rcdb.com/r.htm?", rcdbQueryParams(body)).toString() private data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) { @@ -35,7 +35,7 @@ private data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) { } /** - * Builder for the parameters only (mainly because it might be possilbe in the future to have an API with a POST search object? + * Builder for the parameters only (mainly because it might be possible in the future to have an API with a POST search object? */ private fun rcdbQueryParams(body: ParamsCollector.() -> ParamsCollector): RcdbParams { val builder = ParamsCollector() From 9f17e88ce370237ff73ab8b96c42cf58a2dfe48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sat, 6 Mar 2021 19:38:37 +0100 Subject: [PATCH 7/7] Add Gitignore File --- .gitlab-ci.yml | 30 ++++++++++++++++++++++++++++++ build.gradle.kts | 19 ++++++++++++++----- 2 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..c0eb90c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,30 @@ +# Based on https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Gradle.gitlab-ci.yml +image: gradle:jdk11 + +variables: + GRADLE_OPTS: "-Dorg.gradle.daemon=false" + +before_script: + - export GRADLE_USER_HOME=`pwd`/.gradle + +build: + stage: build + script: gradle --build-cache assemble + cache: + key: "$CI_COMMIT_REF_NAME" + policy: push + paths: + - build + - .gradle + +artifact: + stage: deploy + script: gradle publish + rules: + - if: '$CI_COMMIT_BRANCH == "master"' + cache: + key: "$CI_COMMIT_REF_NAME" + policy: pull-push + paths: + - build + - .gradle diff --git a/build.gradle.kts b/build.gradle.kts index 5f6169a..4ebd22b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -68,12 +68,21 @@ tasks { publishing { publications { - create("maven") { - groupId = project.group as String - artifactId = project.name - version = project.version as String - + create("QueryBuilder") { from(components["java"]) } + repositories { + maven { + url = uri("https://git.f3l.de/api/v4/projects/180/packages/maven") + name = "GitLab" + credentials(HttpHeaderCredentials::class.java) { + name = "Job-Token" + value = System.getenv("CI_JOB_TOKEN") + } + authentication { + create("header") + } + } + } } }