/*
* Copyright (C) 2009-2015 Typesafe Inc. <http://www.typesafe.com>
*/
package play.mvc;
import java.lang.annotation.*;
/**
* A body parser parses the HTTP request body content.
*/
public interface BodyParser {
play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength);
/**
* Specify the body parser to use for an Action method.
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Of {
Class<? extends BodyParser> value();
long maxLength() default -1;
}
/**
* If PATCH, POST, or PUT, guess the body content by checking the Content-Type header.
*/
public static class Default implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.default_(maxLength);
}
}
/**
* Guess the body content by checking the Content-Type header.
*/
public static class AnyContent implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.anyContent(maxLength);
}
}
/**
* Parse the body as Json if the Content-Type is text/json or application/json.
*/
public static class Json implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.json(maxLength);
}
}
/**
* Parse the body as Json without checking the Content-Type.
*/
public static class TolerantJson implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.tolerantJson(maxLength);
}
}
/**
* Parse the body as Xml if the Content-Type is application/xml.
*/
public static class Xml implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.xml(maxLength);
}
}
/**
* Parse the body as Xml without checking the Content-Type.
*/
public static class TolerantXml implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.tolerantXml(maxLength);
}
}
/**
* Parse the body as text if the Content-Type is text/plain.
*/
public static class Text implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.text(maxLength);
}
}
/**
* Parse the body as text without checking the Content-Type.
*/
public static class TolerantText implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.tolerantText(maxLength);
}
}
/**
* Store the body content in a RawBuffer.
*/
public static class Raw implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.raw(maxLength);
}
}
/**
* Parse the body as form url encoded if the Content-Type is application/x-www-form-urlencoded.
*/
public static class FormUrlEncoded implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.formUrlEncoded(maxLength);
}
}
/**
* Parse the body as form url encoded without checking the Content-Type.
*/
public static class MultipartFormData implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
return play.core.j.JavaParsers.multipartFormData(maxLength);
}
}
/**
* Don't parse the body.
*/
public static class Empty implements BodyParser {
public play.api.mvc.BodyParser<Http.RequestBody> parser(long maxLength) {
if (maxLength != -1) throw new IllegalArgumentException("Empty BodyParser's maxLength argument is ignored so it must have a value of -1, was: " + maxLength);
return play.core.j.JavaParsers.empty();
}
}
}