diff options
Diffstat (limited to 'cask/src/cask/model/Params.scala')
-rw-r--r-- | cask/src/cask/model/Params.scala | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/cask/src/cask/model/Params.scala b/cask/src/cask/model/Params.scala index 8f206c8..901cca4 100644 --- a/cask/src/cask/model/Params.scala +++ b/cask/src/cask/model/Params.scala @@ -76,24 +76,28 @@ case class Cookie(name: String, } -object FormValue{ +sealed trait FormEntry{ + def valueOrFileName: String + def headers: io.undertow.util.HeaderMap + def asFile: Option[FormFile] = this match{ + case p: FormValue => None + case p: FormFile => Some(p) + } +} +object FormEntry{ def fromUndertow(from: io.undertow.server.handlers.form.FormData.FormValue) = { - if (!from.isFile) Plain(from.getValue, from.getHeaders) - else File(from.getValue, from.getFileName, from.getPath, from.getHeaders) + if (!from.isFile) FormValue(from.getValue, from.getHeaders) + else FormFile(from.getFileName, from.getPath, from.getHeaders) } - case class Plain(value: String, - headers: io.undertow.util.HeaderMap) extends FormValue - case class File(value: String, - fileName: String, - filePath: java.nio.file.Path, - headers: io.undertow.util.HeaderMap) extends FormValue } -sealed trait FormValue{ - def value: String - def headers: io.undertow.util.HeaderMap - def asFile: Option[FormValue.File] = this match{ - case p: FormValue.Plain => None - case p: FormValue.File => Some(p) - } +case class FormValue(value: String, + headers: io.undertow.util.HeaderMap) extends FormEntry{ + def valueOrFileName = value +} + +case class FormFile(fileName: String, + filePath: java.nio.file.Path, + headers: io.undertow.util.HeaderMap) extends FormEntry{ + def valueOrFileName = fileName } |