#
# Copyright (C) Lightbend Inc. <https://www.lightbend.com>
#

GET         /                       controllers.Application.index
POST        /post                   controllers.Application.post
GET         /with/:param            controllers.Application.withParam(param)

GET         /instance               @controllers.InstanceController.index

GET         /users/:userId          controllers.Application.user(userId: models.UserId)
GET         /query-user             controllers.Application.queryUser(userId: models.UserId)

GET         /escapes/$i<\d+>        controllers.Application.takeIntEscapes(i: Int)

GET         /take-bool              controllers.Application.takeBool(b: Boolean)
GET         /take-bool-2/:b         controllers.Application.takeBool2(b: Boolean)

GET         /take-str               controllers.Application.takeString(x: String)
GET         /take-str-opt           controllers.Application.takeStringOption(x: Option[String])
GET         /take-str-jopt          controllers.Application.takeStringOptional(x: java.util.Optional[String])
GET         /take-char              controllers.Application.takeChar(x: Char)
GET         /take-char-opt          controllers.Application.takeCharOption(x: Option[Char])
GET         /take-int               controllers.Application.takeInt(x: Int)
GET         /take-int-opt           controllers.Application.takeIntOption(x: Option[Int])
GET         /take-jint              controllers.Application.takeInteger(x: java.lang.Integer)
GET         /take-jint-jopt         controllers.Application.takeIntegerOptional(x: java.util.Optional[java.lang.Integer])
GET         /take-slist-str         controllers.Application.takeListString(x: List[String])
GET         /take-slist-str-opt     controllers.Application.takeListStringOption(x: Option[List[String]])
GET         /take-slist-char        controllers.Application.takeListChar(x: List[Char])
GET         /take-slist-char-opt    controllers.Application.takeListCharOption(x: Option[List[Char]])
GET         /take-jlist-str         controllers.Application.takeJavaListString(x: java.util.List[String])
GET         /take-jlist-str-jopt    controllers.Application.takeJavaListStringOptional(x: java.util.Optional[java.util.List[String]])
GET         /take-slist-int         controllers.Application.takeListInt(x: List[Int])
GET         /take-slist-int-opt     controllers.Application.takeListIntOption(x: Option[List[Int]])
GET         /take-jlist-jint        controllers.Application.takeJavaListInteger(x: java.util.List[java.lang.Integer])
GET         /take-jlist-jint-jopt   controllers.Application.takeJavaListIntegerOptional(x: java.util.Optional[java.util.List[java.lang.Integer]])
####
#### Same again with defaults (/take-...-d):
####
GET         /take-str-d             controllers.Application.takeStringWithDefault(x: String ?= "abc")
GET         /take-str-opt-d         controllers.Application.takeStringOptionWithDefault(x: Option[String] ?= Option("abc"))
GET         /take-str-jopt-d        controllers.Application.takeStringOptionalWithDefault(x: java.util.Optional[String] ?= java.util.Optional.of("abc"))
GET         /take-char-d            controllers.Application.takeCharWithDefault(x: Char ?= 'a')
GET         /take-char-opt-d        controllers.Application.takeCharOptionWithDefault(x: Option[Char] ?= Option('a'))
GET         /take-int-d             controllers.Application.takeIntWithDefault(x: Int ?= 123)
GET         /take-int-opt-d         controllers.Application.takeIntOptionWithDefault(x: Option[Int] ?= Option(123))
GET         /take-jint-d            controllers.Application.takeIntegerWithDefault(x: java.lang.Integer ?= 123)
GET         /take-jint-jopt-d       controllers.Application.takeIntegerOptionalWithDefault(x: java.util.Optional[java.lang.Integer] ?= java.util.Optional.of(123))
GET         /take-slist-str-d       controllers.Application.takeListStringWithDefault(x: List[String] ?= List("abc", "def", "ghi"))
GET         /take-slist-str-opt-d   controllers.Application.takeListStringOptionWithDefault(x: Option[List[String]] ?= Option(List("abc", "def", "ghi")))
GET         /take-slist-char-d      controllers.Application.takeListCharWithDefault(x: List[Char] ?= List('a', 'b', 'c'))
GET         /take-slist-char-opt-d  controllers.Application.takeListCharOptionWithDefault(x: Option[List[Char]] ?= Option(List('a', 'b', 'c')))
GET         /take-jlist-str-d       controllers.Application.takeJavaListStringWithDefault(x: java.util.List[String] ?= java.util.Arrays.asList("abc", "def", "ghi"))
GET         /take-jlist-str-jopt-d  controllers.Application.takeJavaListStringOptionalWithDefault(x: java.util.Optional[java.util.List[String]] ?= java.util.Optional.of(java.util.Arrays.asList("abc", "def", "ghi")))
GET         /take-slist-int-d       controllers.Application.takeListIntWithDefault(x: List[Int] ?= List(1, 2, 3))
GET         /take-slist-int-opt-d   controllers.Application.takeListIntOptionWithDefault(x: Option[List[Int]] ?= Option(List(1, 2, 3)))
GET         /take-jlist-jint-d      controllers.Application.takeJavaListIntegerWithDefault(x: java.util.List[java.lang.Integer] ?= java.util.Arrays.asList(1, 2, 3))
GET         /take-jlist-jint-jopt-d controllers.Application.takeJavaListIntegerOptionalWithDefault(x: java.util.Optional[java.util.List[java.lang.Integer]] ?= java.util.Optional.of(java.util.Arrays.asList(1, 2, 3)))

GET         /urlcoding/:d/*s        controllers.Application.urlcoding(d, s, q)

GET         /ident/:è27             controllers.πø$7ß.ôü65$t(è27: Int)

GET         /hello                  controllers.Application.hello
GET         /hello2                 controllers.Application.hello

->          /module                 module.Routes

GET         /routes                 controllers.Application.route(abstract)
GET         /routes                 controllers.Application.route(case)
GET         /routes                 controllers.Application.route(catch)
GET         /routes                 controllers.Application.route(class)
GET         /routes                 controllers.Application.route(def)
GET         /routes                 controllers.Application.route(do)
GET         /routes                 controllers.Application.route(else)
GET         /routes                 controllers.Application.route(extends)
GET         /routes                 controllers.Application.route(false)
GET         /routes                 controllers.Application.route(final)
GET         /routes                 controllers.Application.route(finally)
GET         /routes                 controllers.Application.route(for)
GET         /routes                 controllers.Application.route(forSome)
GET         /routes                 controllers.Application.route(if)
GET         /routes                 controllers.Application.route(implicit)
GET         /routes                 controllers.Application.route(import)
GET         /routes                 controllers.Application.route(lazy)
GET         /routes                 controllers.Application.route(match)
GET         /routes                 controllers.Application.route(new)
GET         /routes                 controllers.Application.route(null)
GET         /routes                 controllers.Application.route(object)
GET         /routes                 controllers.Application.route(override)
GET         /routes                 controllers.Application.route(package)
GET         /routes                 controllers.Application.route(private)
GET         /routes                 controllers.Application.route(protected)
GET         /routes                 controllers.Application.route(return)
GET         /routes                 controllers.Application.route(sealed)
GET         /routes                 controllers.Application.route(super)
GET         /routes                 controllers.Application.route(this)
GET         /routes                 controllers.Application.route(throw)
GET         /routes                 controllers.Application.route(trait)
GET         /routes                 controllers.Application.route(try)
GET         /routes                 controllers.Application.route(true)
GET         /routes                 controllers.Application.route(type)
GET         /routes                 controllers.Application.route(val)
GET         /routes                 controllers.Application.route(var)
GET         /routes                 controllers.Application.route(while)
GET         /routestest             controllers.Application.routetest(with)
GET         /routestest             controllers.Application.routetest(yield)

# Test for default values for scala keywords
GET         /routesdefault          controllers.Application.routedefault(type ?= "x")

GET         /public/*file           controllers.Assets.versioned(path="/public", file: controllers.Assets.Asset)

# This triggers a string interpolation warning, since there is an identifier called "routes" in scope, and it
# generates a non interpolated string containing $routes. As does this comment.
GET         /intwarn/:routes        controllers.Application.interpolatorWarning(routes)
