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

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

package com.reprezen.genflow.openapi3.doc

import com.reprezen.jsonoverlay.Overlay
import com.reprezen.kaizen.oasparser.model3.Parameter

class ParameterHelper implements Helper {

	override init() {}

	/*
	 * See comments at top of PropertyHelper - everything here is analogous
	 */
	def Object getAttribute(Parameter param, String attr) {
		switch attr {
			case "description": param.description
			case "in": param.in
			case "name": param.name
			case "required": !Overlay.of(param).isPresent
			case "type": param.schema.type
		}

// FIXME adapt to OAS3
//		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(Parameter 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(Parameter 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