
com.wordnik.swagger.jaxrs.reader.DefaultJaxrsReader.scala Maven / Gradle / Ivy
The newest version!
package com.wordnik.swagger.jaxrs.reader
import com.wordnik.swagger.model._
import com.wordnik.swagger.jaxrs._
import com.wordnik.swagger.annotations._
import com.wordnik.swagger.core.ApiValues._
import java.lang.reflect.{ Method, Type }
import java.lang.annotation.Annotation
import javax.ws.rs._
import javax.ws.rs.core.Context
class DefaultJaxrsApiReader extends JaxrsApiReader {
// decorates a Parameter based on annotations, returns None if param should be ignored
def processParamAnnotations(mutable: MutableParameter, paramAnnotations: Array[Annotation]): Option[Parameter] = {
var shouldIgnore = false
for (pa <- paramAnnotations) {
pa match {
case e: ApiParam => parseApiParamAnnotation(mutable, e)
case e: QueryParam => {
mutable.name = readString(e.value, mutable.name)
mutable.paramType = readString(TYPE_QUERY, mutable.paramType)
}
case e: PathParam => {
mutable.name = readString(e.value, mutable.name)
mutable.required = true
mutable.paramType = readString(TYPE_PATH, mutable.paramType)
}
case e: MatrixParam => {
mutable.name = readString(e.value, mutable.name)
mutable.paramType = readString(TYPE_MATRIX, mutable.paramType)
}
case e: HeaderParam => {
mutable.name = readString(e.value, mutable.name)
mutable.paramType = readString(TYPE_HEADER, mutable.paramType)
}
case e: FormParam => {
mutable.name = readString(e.value, mutable.name)
mutable.paramType = readString(TYPE_FORM, mutable.paramType)
}
case e: CookieParam => {
mutable.name = readString(e.value, mutable.name)
mutable.paramType = readString(TYPE_COOKIE, mutable.paramType)
}
case e: DefaultValue => {
mutable.defaultValue = Option(readString(e.value))
}
case e: Context => shouldIgnore = true
case _ =>
}
}
if(!shouldIgnore) {
if(mutable.paramType == null) {
mutable.paramType = TYPE_BODY
mutable.name = TYPE_BODY
}
Some(mutable.asParameter)
}
else None
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy