PathPattern.kt
- package com.hexagonkt.http.patterns
- interface PathPattern {
- val pattern: String
- val prefix: Boolean
- fun addPrefix(prefix: String?): PathPattern
- fun matches(requestUrl: String): Boolean
- fun extractParameters(requestUrl: String): Map<String, String>
- fun insertParameters(parameters: Map<String, Any>): String =
- error("${type()} path pattern does not accept parameters")
- fun describe(): String =
- "${type()}${if (prefix) " (PREFIX)" else ""} '$pattern'"
- private fun type(): String =
- javaClass.simpleName.removeSuffix(typeSuffix)
- private companion object {
- val typeSuffix: String = PathPattern::class.java.simpleName
- }
- }