org.scalatra

package org.scalatra

Members list

Packages

Type members

Classlikes

object Accepted

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Accepted.type
case class ActionResult(status: Int, body: Any, headers: Map[String, String])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object ApiFormats

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
ApiFormats.type
trait ApiFormats extends ScalatraBase

Adds support for mapping and inferring formats to content types.

Adds support for mapping and inferring formats to content types.

$ - Provides a request-scoped format variable $ - Maps formats to content types and vice versa $ - Augments the content-type inferrer to use the format

Attributes

Companion
object
Supertypes
trait ScalatraBase
trait Initializable
trait DynamicScope
trait CoreDsl
trait Control
trait Handler
class Object
trait Matchable
class Any
Show all
abstract class AsyncResult(implicit val scalatraContext: ScalatraContext) extends ScalatraContext

Attributes

Supertypes
class Object
trait Matchable
class Any
Show all
object BadGateway

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
BadGateway.type
object BadRequest

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
BadRequest.type
final class BooleanBlockRouteMatcher(block: => Boolean) extends RouteMatcher

A route matcher on a boolean condition. Does not extract any route parameters.

A route matcher on a boolean condition. Does not extract any route parameters.

Attributes

Supertypes
trait RouteMatcher
class Object
trait Matchable
class Any
object Conflict

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Conflict.type
case object Connect extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Connect.type

Represents an HTTP content encoding.

Represents an HTTP content encoding.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait ContentEncodingSupport extends Handler

Scalatra handler for gzipped responses.

Scalatra handler for gzipped responses.

Attributes

Supertypes
trait Handler
class Object
trait Matchable
class Any
Self type
case class ContentNegotiation[T](value: T, q: Float)

Represents the value of a content negotiation header.

Represents the value of a content negotiation header.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Defines type classes and helper methods for well known content-negotiation headers.

Defines type classes and helper methods for well known content-negotiation headers.

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
trait Control

A collection of methods that affect the control flow of routes.

A collection of methods that affect the control flow of routes.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Cookie

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Cookie.type
case class Cookie(name: String, value: String)(implicit cookieOptions: CookieOptions)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type
case class CookieOptions(domain: String, path: String, maxAge: Int, secure: Boolean, comment: String, httpOnly: Boolean, version: Int, encoding: String)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object CookieSupport

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

The core Scalatra DSL.

The core Scalatra DSL.

Attributes

Supertypes
trait Control
trait Handler
class Object
trait Matchable
class Any
Show all
Known subtypes
object CorsSupport

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait CorsSupport extends Handler, Initializable

Attributes

Companion
object
Supertypes
trait Initializable
trait Handler
class Object
trait Matchable
class Any
Self type
object Created

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Created.type

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Provides cross-site request forgery protection.

Provides cross-site request forgery protection.

Adds a before filter. If a request is determined to be forged, the handleForgery() hook is invoked. Otherwise, a token for the next request is prepared with prepareCsrfToken.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type
case object Delete extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Delete.type

The Scalatra DSL requires a dynamically scoped request and response.

The Scalatra DSL requires a dynamically scoped request and response.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case class ExtensionMethod(name: String) extends HttpMethod

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
class FlashMap extends Serializable

A FlashMap is the data structure used by org.scalatra.FlashMapSupport to allow passing temporary values between sequential actions.

A FlashMap is the data structure used by org.scalatra.FlashMapSupport to allow passing temporary values between sequential actions.

As of Scalatra 2.7.x, it does not directly inherit Map.

Attributes

See also

FlashMapSupport

Supertypes
trait Serializable
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait FlashMapSupport extends Handler

Allows an action to set key-value pairs in a transient state that is accessible only to the next action and is expired immediately after that. This is especially useful when using the POST-REDIRECT-GET pattern to trace the result of an operation.

Allows an action to set key-value pairs in a transient state that is accessible only to the next action and is expired immediately after that. This is especially useful when using the POST-REDIRECT-GET pattern to trace the result of an operation.

post("/article/create") {
 // create session
 flash("notice") = "article created successfully"
 redirect("/home")
}
get("/home") {
 // this will access the value set in previous action
 stuff_with(flash("notice"))
}

Attributes

See also

FlashMap

Companion
object
Supertypes
trait Handler
class Object
trait Matchable
class Any
Self type
object Forbidden

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Forbidden.type
object Found

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Found.type
trait FutureSupport extends AsyncSupport

Attributes

Supertypes
trait AsyncSupport
trait ScalatraAsyncSupport
trait ServletBase
trait ScalatraBase
trait Initializable
trait DynamicScope
trait CoreDsl
trait Control
trait Handler
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object GenerateId

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
GenerateId.type
case object Get extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Get.type
object Gone

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Gone.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case class HaltException(status: Option[Int], headers: Map[String, String], body: Any) extends Throwable, NoStackTrace

Attributes

Supertypes
trait Product
trait Equals
trait NoStackTrace
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
case object Head extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Head.type
case object Http extends Scheme

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait Scheme
class Object
trait Matchable
class Any
Show all
Self type
Http.type
object Http10 extends HttpVersion

Attributes

Supertypes
class HttpVersion
trait Ordered[HttpVersion]
trait Comparable[HttpVersion]
class Object
trait Matchable
class Any
Show all
Self type
Http10.type
object Http11 extends HttpVersion

Attributes

Supertypes
class HttpVersion
trait Ordered[HttpVersion]
trait Comparable[HttpVersion]
class Object
trait Matchable
class Any
Show all
Self type
Http11.type
sealed trait HttpMethod

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Connect.type
object Delete.type
object Get.type
object Head.type
object Options.type
object Patch.type
object Post.type
object Put.type
object Trace.type
Show all
object HttpMethod

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
HttpMethod.type
abstract class HttpVersion(val protocolName: String, val majorVersion: Int, val minorVersion: Int, val keepAliveDefault: Boolean) extends Ordered[HttpVersion]

Attributes

Supertypes
trait Ordered[HttpVersion]
trait Comparable[HttpVersion]
class Object
trait Matchable
class Any
Known subtypes
object Http10.type
object Http11.type
case object Https extends Scheme

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait Scheme
class Object
trait Matchable
class Any
Show all
Self type
Https.type
object IMUsed

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
IMUsed.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
object Locked

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Locked.type
object LoopDetected

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case class MatchedRoute(action: Action, multiParams: MultiParams)

An action and the multi-map of route parameters to invoke it with.

An action and the multi-map of route parameters to invoke it with.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait MethodOverride extends Handler, ServletApiImplicits

Mixin for clients that only support a limited set of HTTP verbs. If the request is a POST and the _method request parameter is set, the value of the _method parameter is treated as the request's method.

Mixin for clients that only support a limited set of HTTP verbs. If the request is a POST and the _method request parameter is set, the value of the _method parameter is treated as the request's method.

Attributes

Companion
object
Supertypes
trait Handler
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object MultiStatus

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object NoContent

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
NoContent.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object NotAcceptable

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object NotExtended

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object NotFound

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
NotFound.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object NotModified

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object Ok

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Ok.type
case object Options extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Options.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
class PassException extends Throwable, NoStackTrace

Attributes

Supertypes
trait NoStackTrace
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
case object Patch extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Patch.type
case class PathPattern(regex: Regex, captureGroupNames: List[String])

A path pattern optionally matches a request path and extracts path parameters.

A path pattern optionally matches a request path and extracts path parameters.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Parses a string into a path pattern for routing.

Parses a string into a path pattern for routing.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
final class PathPatternRouteMatcher(pattern: PathPattern) extends RouteMatcher

Attributes

Supertypes
trait RouteMatcher
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case object Post extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Post.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case object Put extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Put.type

Path pattern parser based on Rack::Mount::Strexp, which is used by Rails.

Path pattern parser based on Rack::Mount::Strexp, which is used by Rails.

Attributes

Companion
object
Supertypes
trait RegexParsers
trait Parsers
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class RailsRouteMatcher(pattern: String) extends RouteMatcher, ReversibleRouteMatcher

An implementation of Rails' path pattern syntax

An implementation of Rails' path pattern syntax

Attributes

Supertypes
trait RouteMatcher
class Object
trait Matchable
class Any
Show all
trait RegexPathPatternParser extends PathPatternParser, RegexParsers

Attributes

Supertypes
trait RegexParsers
trait Parsers
class Object
trait Matchable
class Any
Show all
Known subtypes
final class RegexRouteMatcher(regex: Regex) extends RouteMatcher

A route matcher for regular expressions. Useful for cases that are more complex than are supported by Sinatra- or Rails-style routes.

A route matcher for regular expressions. Useful for cases that are more complex than are supported by Sinatra- or Rails-style routes.

Attributes

Supertypes
trait RouteMatcher
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object ResetContent

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

A route matcher from which a URI can be generated from route parameters.

A route matcher from which a URI can be generated from route parameters.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
case class Route(routeMatchers: Seq[RouteMatcher], action: Action, contextPath: HttpServletRequest => String, metadata: Map[Symbol, Any])

A route is a set of matchers and an action. A route is considered to match if all of its route matchers return Some. If a route matches, its action may be invoked. The route parameters extracted by the matchers are made available to the action.

A route is a set of matchers and an action. A route is considered to match if all of its route matchers return Some. If a route matches, its action may be invoked. The route parameters extracted by the matchers are made available to the action.

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object Route

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Route.type

A route matcher is evaluated in the context it was created and returns a a (possibly empty) multi-map of parameters if the route is deemed to match.

A route matcher is evaluated in the context it was created and returns a a (possibly empty) multi-map of parameters if the route is deemed to match.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object ScalatraBase

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

The base implementation of the Scalatra DSL. Intended to be portable to all supported backends.

The base implementation of the Scalatra DSL. Intended to be portable to all supported backends.

Attributes

Companion
object
Supertypes
trait Initializable
trait DynamicScope
trait CoreDsl
trait Control
trait Handler
class Object
trait Matchable
class Any
Show all
Known subtypes

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Show all
Known subtypes
class ScalatraException(message: String) extends Exception

Attributes

Supertypes
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
trait ScalatraFilter extends Filter, ServletBase

An implementation of the Scalatra DSL in a filter. You may prefer a filter to a ScalatraServlet if:

An implementation of the Scalatra DSL in a filter. You may prefer a filter to a ScalatraServlet if:

$ - you are sharing a URL space with another servlet or filter and want to delegate unmatched requests. This is very useful when migrating legacy applications one page or resource at a time.

Unlike a ScalatraServlet, does not send 404 or 405 errors on non-matching routes. Instead, it delegates to the filter chain.

If in doubt, extend ScalatraServlet instead.

Attributes

See also

ScalatraServlet

Supertypes
trait ServletBase
trait ScalatraBase
trait Initializable
trait DynamicScope
trait CoreDsl
trait Control
trait Handler
trait Filter
class Object
trait Matchable
class Any
Show all
class ScalatraParams(val multiMap: Map[String, Seq[String]]) extends MultiMapHeadView[String, String]

Attributes

Supertypes
trait MultiMapHeadView[String, String]
class Object
trait Matchable
class Any

Add some implicits

Add some implicits

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type
trait ScalatraServlet extends HttpServlet, ServletBase, Initializable

An implementation of the Scalatra DSL in a servlet. This is the recommended base trait for most Scalatra applications. Use a servlet if:

An implementation of the Scalatra DSL in a servlet. This is the recommended base trait for most Scalatra applications. Use a servlet if:

$ - your Scalatra routes run in a subcontext of your web application. $ - you want Scalatra to have complete control of unmatched requests. $ - you think you want a filter just for serving static content with the default servlet; ScalatraServlet can do this too $ - you don't know the difference

Attributes

See also

ScalatraFilter

Supertypes
trait ServletBase
trait ScalatraBase
trait Initializable
trait DynamicScope
trait CoreDsl
trait Control
trait Handler
class HttpServlet
class GenericServlet
trait Serializable
trait ServletConfig
trait Servlet
class Object
trait Matchable
class Any
Show all
sealed trait Scheme

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Http.type
object Https.type
object SeeOther

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
SeeOther.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

This trait provides session support for stateful applications.

This trait provides session support for stateful applications.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type

A Sinatra-compatible route path pattern parser.

A Sinatra-compatible route path pattern parser.

Attributes

Companion
object
Supertypes
trait RegexParsers
trait Parsers
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class SinatraRouteMatcher(pattern: String) extends RouteMatcher, ReversibleRouteMatcher

An implementation of Sinatra's path pattern syntax.

An implementation of Sinatra's path pattern syntax.

Attributes

Supertypes
trait RouteMatcher
class Object
trait Matchable
class Any
Show all
trait SslRequirement extends Handler, ServletApiImplicits

Redirects unsecured requests to the corresponding secure URL.

Redirects unsecured requests to the corresponding secure URL.

Attributes

Supertypes
trait Handler
class Object
trait Matchable
class Any
final class StatusCodeRouteMatcher(codes: Range, responseStatus: => Int) extends RouteMatcher

Attributes

Supertypes
trait RouteMatcher
class Object
trait Matchable
class Any
class SweetCookies(reqCookies: Map[String, String], response: HttpServletResponse) extends ServletApiImplicits

Attributes

Supertypes
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case object Trace extends HttpMethod

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait HttpMethod
class Object
trait Matchable
class Any
Show all
Self type
Trace.type
object Unauthorized

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object UriDecoder

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
UriDecoder.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Adds support for generating URIs from routes and their params.

Adds support for generating URIs from routes and their params.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object UrlGenerator.type
object UseProxy

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
UseProxy.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Value members

Inherited methods

def halt(result: ActionResult): Nothing

Attributes

Inherited from:
Control
def halt[T](status: Integer, body: T, headers: Map[String, String]): Nothing

Immediately halts processing of a request. Can be called from either a before filter or a route.

Immediately halts processing of a request. Can be called from either a before filter or a route.

Value parameters

body

a result to render through the render pipeline as the body

headers

headers to add to the response

status

the status to set on the response, or null to leave the status unchanged.

Attributes

Inherited from:
Control
def pass(): Nothing

Immediately exits from the current route.

Immediately exits from the current route.

Attributes

Inherited from:
Control

Concrete fields

val EnvironmentKey: String
val MultiParamsKey: String