The class that wraps anything for auto conversion to JSON or XML
a trait that extracts the JSON body from a request It is composed with a TestXXX to get the correct thing for the extractor
A trait that defines the TestDelete extractor.
A trait that defines the TestGet extractor.
A trait that defines the TestPost extractor.
A trait that defines the TestPut extractor.
A trait that defines the TestReq extractor.
a trait that extracts the XML body from a request It is composed with a TestXXX to get the correct thing for the extractor
o != arg0
is the same as !(o == (arg0))
.
o != arg0
is the same as !(o == (arg0))
.
the object to compare against this object for dis-equality.
false
if the receiver object is equivalent to the argument; true
otherwise.
Extract a Pair using the same syntax that you use to make a Pair
o == arg0
is the same as if (o eq null) arg0 eq null else o.equals(arg0)
.
o == arg0
is the same as if (o eq null) arg0 eq null else o.equals(arg0)
.
the object to compare against this object for equality.
true
if the receiver object is equivalent to the argument; false
otherwise.
o == arg0
is the same as o.equals(arg0)
.
o == arg0
is the same as o.equals(arg0)
.
the object to compare against this object for equality.
true
if the receiver object is equivalent to the argument; false
otherwise.
An extractor that tests the request to see if it's a DELETE and if it is, the path and the request are extracted.
An extractor that tests the request to see if it's a GET and if it is, the path and the request are extracted.
An extractor that tests the request to see if it's a POST and if it is, the path and the request are extracted.
An extractor that tests the request to see if it's a PUT and if it is, the path and the request are extracted.
Take any value and convert it into a JValue.
Take any value and convert it into a JValue. Full box if it works, empty if it does
Apply the Rest helper
Apply the Rest helper
This method is used to cast the receiver object to be of type T0
.
This method is used to cast the receiver object to be of type T0
.
Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression1.asInstanceOf[String]
will throw a ClassCastException
at runtime, while the expressionList(1).asInstanceOf[List[String]]
will not. In the latter example, because the type argument is erased as
part of compilation it is not possible to check whether the contents of the list are of the requested typed.
the receiver object.
Wrap a Box of anything for autoconversion to JSON or XML
Wrap a Box of anything for autoconversion to JSON or XML
wrap anything for autoconversion to JSON or XML
wrap anything for autoconversion to JSON or XML
Turn a () => Box[T] into the return type expected by DispatchPF.
Turn a () => Box[T] into the return type expected by DispatchPF. Note that this method will return messages from Failure() and return codes and messages from ParamFailure[Int[(msg, _, _, code)
Turn a Box[T] into the return type expected by DispatchPF.
Turn a Box[T] into the return type expected by DispatchPF. Note that this method will return messages from Failure() and return codes and messages from ParamFailure[Int[(msg, _, _, code)
This method creates and returns a copy of the receiver object.
This method creates and returns a copy of the receiver object.
The default implementation of the clone
method is platform dependent.
a copy of the receiver object.
Override this method to create an AppXmlResponse with the mime type application/xml rather then text/xml
Override this method to create an AppXmlResponse with the mime type application/xml rather then text/xml
If the headers and the suffix say nothing about the response type, should we default to JSON.
If the headers and the suffix say nothing about the response type, should we default to JSON. By default, yes, override to change the behavior.
If the headers and the suffix say nothing about the response type, should we default to XML.
If the headers and the suffix say nothing about the response type, should we default to XML. By default, no, override to change the behavior.
This method is used to test whether the argument (arg0
) is a reference to the
receiver object (this
).
This method is used to test whether the argument (arg0
) is a reference to the
receiver object (this
).
The eq
method implements an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation] on
non-null instances of AnyRef
:
* It is reflexive: for any non-null instance x
of type AnyRef
, x.eq(x)
returns true
.
* It is symmetric: for any non-null instances x
and y
of type AnyRef
, x.eq(y)
returns true
if and
only if y.eq(x)
returns true
.
* It is transitive: for any non-null instances x
, y
, and z
of type AnyRef
if x.eq(y)
returns true
and y.eq(z)
returns true
, then x.eq(z)
returns true
.
Additionally, the eq
method has three other properties.
* It is consistent: for any non-null instances x
and y
of type AnyRef
, multiple invocations of
x.eq(y)
consistently returns true
or consistently returns false
.
* For any non-null instance x
of type AnyRef
, x.eq(null)
and null.eq(x)
returns false
.
* null.eq(null)
returns true
.
When overriding the equals
or hashCode
methods, it is important to ensure that their behavior is
consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2
), they
should be equal to each other (o1 == o2
) and they should hash to the same value (o1.hashCode == o2.hashCode
).
the object to compare against this object for reference equality.
true
if the argument is a reference to the receiver object; false
otherwise.
This method is used to compare the receiver object (this
) with the argument object (arg0
) for equivalence.
This method is used to compare the receiver object (this
) with the argument object (arg0
) for equivalence.
The default implementations of this method is an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence
relation]:
* It is reflexive: for any instance x
of type Any
, x.equals(x)
should return true
.
* It is symmetric: for any instances x
and y
of type Any
, x.equals(y)
should return true
if and
only if y.equals(x)
returns true
.
* It is transitive: for any instances x
, y
, and z
of type AnyRef
if x.equals(y)
returns true
and
y.equals(z)
returns true
, then x.equals(z)
should return true
.
If you override this method, you should verify that your implementation remains an equivalence relation.
Additionally, when overriding this method it is often necessary to override hashCode
to ensure that objects
that are "equal" (o1.equals(o2)
returns true
) hash to the same
scala.Int
(o1.hashCode.equals(o2.hashCode)
).
the object to compare against this object for equality.
true
if the receiver object is equivalent to the argument; false
otherwise.
This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.
This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object.
The details of when and if the finalize
method are invoked, as well as the interaction between finalize
and non-local returns and exceptions, are all platform dependent.
Return the implicit Formats instance for JSON conversion
Return the implicit Formats instance for JSON conversion
Returns a representation that corresponds to the dynamic class of the receiver object.
Returns a representation that corresponds to the dynamic class of the receiver object.
The nature of the representation is platform dependent.
a representation that corresponds to the dynamic class of the receiver object.
Returns a hash code value for the object.
Returns a hash code value for the object.
The default hashing algorithm is platform dependent.
Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)
) yet
not be equal (o1.equals(o2)
returns false
). A degenerate implementation could always return 0
.
However, it is required that if two objects are equal (o1.equals(o2)
returns true
) that they have
identical hash codes (o1.hashCode.equals(o2.hashCode)
). Therefore, when overriding this method, be sure
to verify that the behavior is consistent with the equals
method.
the hash code value for the object.
Is the Rest helper defined for a given request
Is the Rest helper defined for a given request
This method is used to test whether the dynamic type of the receiver object is T0
.
This method is used to test whether the dynamic type of the receiver object is T0
.
Note that the test result of the test is modulo Scala's erasure semantics. Therefore the expression1.isInstanceOf[String]
will return false
, while the expression List(1).isInstanceOf[List[String]]
will
return true
. In the latter example, because the type argument is erased as part of compilation it is not
possible to check whether the contents of the list are of the requested typed.
true
if the receiver object is an instance of erasure of type T0
; false
otherwise.
Convert a JsExp to a LiftResponse
Convert a JsExp to a LiftResponse
Will the request accept a JSON response? Yes if the Accept header contains "text/json", "application/json" or the Accept header is missing or contains "star/star" and the suffix is "json".
Will the request accept a JSON response? Yes if the Accept header contains "text/json", "application/json" or the Accept header is missing or contains "star/star" and the suffix is "json". Override this method to provide your own logic. If there's no suffix, no accepts (or it's "star/star") then look to either the Content-Type header or the defaultGetAsJson flag
Convert a JValue to a LiftResponse
Convert a JValue to a LiftResponse
A function that chooses JSON or XML based on the request.
A function that chooses JSON or XML based on the request.. Use with serveType
a SuperString with more available methods such as roboSplit or commafy
Allows you to use >> after a path list to handle all the cases where you have a prefix for a series of differ suffixes with the same path prefix.
Allows you to use >> after a path list to handle all the cases where you have a prefix for a series of differ suffixes with the same path prefix. For example: <code> serve("foo" / "bar" >> { case baz :: Nil Post _ => ... case Nil Get _ => ... }) </code>
Take an original piece of JSON (most probably, JObject and replace all the JFields with those in toMerge
Take an original piece of JSON (most probably, JObject and replace all the JFields with those in toMerge
o.ne(arg0)
is the same as !(o.eq(arg0))
.
o.ne(arg0)
is the same as !(o.eq(arg0))
.
the object to compare against this object for reference dis-equality.
false
if the argument is not a reference to the receiver object; true
otherwise.
Convert a Node to an XmlResponse
Convert a Node to an XmlResponse
Wakes up a single thread that is waiting on the receiver object's monitor.
Wakes up a single thread that is waiting on the receiver object's monitor.
Wakes up all threads that are waiting on the receiver object's monitor.
Wakes up all threads that are waiting on the receiver object's monitor.
Turn an Option[T] into the return type expected by DispatchPF.
Turn an Option[T] into the return type expected by DispatchPF.
Turn an Option[T] into the return type expected by DispatchPF.
Turn an Option[T] into the return type expected by DispatchPF.
Add request handlers
Add request handlers
Serve a request returning either JSON or XML.
Serve a request returning either JSON or XML.
-- convert the intermediate response to a LiftResponse based on the request being for XML or JSON. If T is JsonXmlAble, there are built-in converters. Further, you can return auto(thing) and that will invoke built-in converters as well. The built-in converters use Lift JSON's Extraction.decompose to convert the object into JSON and then Xml.toXml() to convert to XML.
Serve a request returning either JSON or XML.
Serve a request returning either JSON or XML.
Serve a given request by determining the request type, computing the response and then converting the response to the given type (e.
Serve a given request by determining the request type, computing
the response and then converting the response to the given
type (e.g., JSON or XML).
-- a function that determines the response type based on the Req.
-- a function that converts from the response type to a the appropriate LiftResponse based on the selected response type.
a SuperString with more available methods such as roboSplit or commafy
If there are additional custom rules (e.
If there are additional custom rules (e.g., looking at query parameters) you can override this method which is consulted if the other rules in jsonResponse_? fail
If there are additional custom rules (e.
If there are additional custom rules (e.g., looking at query parameters) you can override this method which is consulted if the other rules in xmlResponse_? fail
Turn T into the return type expected by DispatchPF as long as we can convert T to a LiftResponse.
Turn T into the return type expected by DispatchPF as long as we can convert T to a LiftResponse.
Returns a string representation of the object.
Returns a string representation of the object.
The default representation is platform dependent.
a string representation of the object.
Will the request accept an XML response? Yes if the Accept header contains "application/xml" or "text/xml" or the Accept header is missing or contains "star/star" and the suffix is "xml".
Will the request accept an XML response? Yes if the Accept header contains "application/xml" or "text/xml" or the Accept header is missing or contains "star/star" and the suffix is "xml". Override this method to provide your own logic. If there's no suffix, no accepts (or it's "star/star") then look to either the Content-Type header or the defaultGetAsXml flag.
Mix this trait into a class to provide a list of REST helper methods