All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.reprezen.genflow.swagger.doc.ParameterHelper.xtend Maven / Gradle / Ivy

The newest version!
package com.reprezen.genflow.swagger.doc

import io.swagger.models.parameters.AbstractParameter
import io.swagger.models.parameters.AbstractSerializableParameter
import io.swagger.models.parameters.BodyParameter
import io.swagger.models.parameters.CookieParameter
import io.swagger.models.parameters.FormParameter
import io.swagger.models.parameters.HeaderParameter
import io.swagger.models.parameters.Parameter
import io.swagger.models.parameters.PathParameter
import io.swagger.models.parameters.QueryParameter
import io.swagger.models.parameters.RefParameter

class ParameterHelper implements Helper {

	override init() {}

	/*
	 * See comments at top of PropertyHelper - everything here is analogous
	 */
	def Object getAttribute(Parameter param, String attr) {
		switch param {
			// leaf (height 1) types
			CookieParameter:
				param.getAttribute(attr)
			FormParameter:
				param.getAttribute(attr)
			HeaderParameter:
				param.getAttribute(attr)
			PathParameter:
				param.getAttribute(attr)
			QueryParameter:
				param.getAttribute(attr)
			// height 2 types
			AbstractSerializableParameter:
				param.getAttribute(attr)
			RefParameter:
				param.getAttribute(attr)
			BodyParameter:
				param.getAttribute(attr)
		}
	}

	def private getAttribute(CookieParameter param, String attr) {
		return (param as AbstractSerializableParameter).getAttribute(attr)
	}

	def private getAttribute(FormParameter param, String attr) {
		return (param as AbstractSerializableParameter).getAttribute(attr)
	}

	def private getAttribute(HeaderParameter param, String attr) {
		return (param as AbstractSerializableParameter).getAttribute(attr)
	}

	def private getAttribute(PathParameter param, String attr) {
		return (param as AbstractSerializableParameter).getAttribute(attr)
	}

	def private getAttribute(QueryParameter param, String attr) {
		return (param as AbstractSerializableParameter).getAttribute(attr)
	}

	def private getAttribute(AbstractSerializableParameter param, String attr) {
		val value = switch attr {
			case "collectionFormat": param.collectionFormat
			case "defaultValue": param.defaultValue
			case "enum": param.enum
			case "format": param.format
			case "items": param.items
			case "maxItems": param.maxItems
			case "maxLength": param.maxLength
			case "maximum": param.maximum
			case "minItems": param.minItems
			case "minLength": param.minLength
			case "minimum": param.minimum
			case "multipleOf": param.multipleOf
			case "pattern": param.pattern
			case "type": param.type
			case "x-example": param.example
		}
		value ?: (param as AbstractParameter).getAttribute(attr)
	}

	def private getAttribute(BodyParameter param, String attr) {
		val value = switch attr {
			case "examples": param.examples
			case "schema": param.schema
		}
		value ?: (param as AbstractParameter).getAttribute(attr)
	}

	def private getAttribute(RefParameter param, String attr) {
		val value = switch attr {
			case "$ref": param.$ref
		}
		value ?: (param as AbstractParameter).getAttribute(attr)
	}

	def private getAttribute(AbstractParameter param, String attr) {
		switch attr {
			case "description": param.description
			case "in": param.in
			case "name": param.name
			case "pattern": param.pattern
			case "required": param.required
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy