Module neberus.core

Class MethodParser


  • public abstract class MethodParser
    extends java.lang.Object
    Parses all stuff related to a single REST method.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DESCRIPTION  
      static java.lang.String DETAIL  
      protected Options options  
      static java.lang.String TITLE  
      static java.lang.String TYPE  
      static java.lang.String VALUE  
      static java.lang.String VALUE_HINT  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addCommonResponseData​(javax.lang.model.element.AnnotationMirror response, java.util.List<javax.lang.model.element.AnnotationValue> produces, RestMethodData.ResponseData responseData)  
      protected void addCurl​(javax.lang.model.element.ExecutableElement methodDoc, RestMethodData data)  
      protected void addCustomParameter​(javax.lang.model.element.AnnotationMirror parameterDesc, RestMethodData data)  
      protected void addCustomParameters​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addCustomRequestEntities​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addDeprecated​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addDescription​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addLabel​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addMediaType​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addMethodData​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addNestedArray​(javax.lang.model.type.TypeMirror type, java.util.List<RestMethodData.ParameterInfo> parentList)  
      protected void addNestedMap​(javax.lang.model.type.TypeMirror type, java.util.List<RestMethodData.ParameterInfo> parentList)  
      protected void addNestedParameters​(javax.lang.model.type.TypeMirror type, java.util.List<RestMethodData.ParameterInfo> parentList, java.util.List<javax.lang.model.type.TypeMirror> parentTypes)  
      protected void addParameterInfo​(java.util.List<RestMethodData.ParameterInfo> parameters, RestMethodData.ParameterInfo parameterInfo)  
      protected void addParameters​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addPath​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addRequestData​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addResponse​(javax.lang.model.element.AnnotationMirror response, RestMethodData data, java.util.List<javax.lang.model.element.AnnotationValue> produces)  
      protected void addResponseData​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected void addResponsesFromAnnotations​(javax.lang.model.element.ExecutableElement method, RestMethodData data)  
      protected java.util.Optional<java.util.List<RestMethodData.AllowedValue>> getAllowedValuesFromLinkTag​(javax.lang.model.element.Element e, java.util.List<? extends com.sun.source.doctree.DocTree> tags)  
      protected java.util.Optional<java.util.List<RestMethodData.AllowedValue>> getAllowedValuesFromSeeTag​(javax.lang.model.element.Element e, java.util.List<? extends com.sun.source.doctree.DocTree> tags)  
      protected java.util.List<RestMethodData.AllowedValue> getAllowedValuesFromType​(javax.lang.model.type.TypeMirror type)  
      protected java.util.Optional<java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>>> getConstraintsFromLinkTag​(javax.lang.model.element.Element e, java.util.List<? extends com.sun.source.doctree.DocTree> tags)  
      protected java.util.Optional<java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>>> getConstraintsFromSeeTag​(javax.lang.model.element.Element e, java.util.List<? extends com.sun.source.doctree.DocTree> tags)  
      protected abstract java.util.List<javax.lang.model.element.AnnotationValue> getConsumes​(javax.lang.model.element.ExecutableElement method)  
      protected abstract java.lang.String getFormParam​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.VariableElement parameter, int index)  
      protected abstract java.lang.String getHeaderParam​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.VariableElement parameter, int index)  
      protected abstract java.lang.String getPath​(javax.lang.model.element.ExecutableElement methodDoc)  
      protected abstract java.lang.String getPathParam​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.VariableElement parameter, int index)  
      protected abstract java.util.List<javax.lang.model.element.AnnotationValue> getProduces​(javax.lang.model.element.ExecutableElement method)  
      protected abstract java.lang.String getQueryParam​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.VariableElement parameter, int index)  
      protected RequiredStatus getRequiredStatus​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.VariableElement parameter, int index)  
      protected javax.lang.model.type.TypeMirror getResponseEntityClass​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.AnnotationMirror response)  
      protected abstract java.lang.String getRootPath​(javax.lang.model.element.TypeElement classDoc)  
      protected RestMethodData.ParameterInfo parseCustomParameterInfo​(javax.lang.model.element.AnnotationMirror parameterDesc)  
      RestMethodData parseMethod​(javax.lang.model.element.ExecutableElement method, java.lang.String httpMethod)  
      protected RestMethodData.ParameterInfo parseParameter​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.VariableElement parameter, java.util.Map<java.lang.String,​com.sun.source.doctree.ParamTree> paramTags, int index)  
      protected boolean skipParameter​(javax.lang.model.element.ExecutableElement methodDoc, javax.lang.model.element.VariableElement parameter, int index)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MethodParser

        public MethodParser​(Options options)
    • Method Detail

      • parseMethod

        public RestMethodData parseMethod​(javax.lang.model.element.ExecutableElement method,
                                          java.lang.String httpMethod)
      • addRequestData

        protected void addRequestData​(javax.lang.model.element.ExecutableElement method,
                                      RestMethodData data)
      • skipParameter

        protected boolean skipParameter​(javax.lang.model.element.ExecutableElement methodDoc,
                                        javax.lang.model.element.VariableElement parameter,
                                        int index)
      • addParameters

        protected void addParameters​(javax.lang.model.element.ExecutableElement method,
                                     RestMethodData data)
      • addCustomRequestEntities

        protected void addCustomRequestEntities​(javax.lang.model.element.ExecutableElement method,
                                                RestMethodData data)
      • getPathParam

        protected abstract java.lang.String getPathParam​(javax.lang.model.element.ExecutableElement method,
                                                         javax.lang.model.element.VariableElement parameter,
                                                         int index)
      • getQueryParam

        protected abstract java.lang.String getQueryParam​(javax.lang.model.element.ExecutableElement method,
                                                          javax.lang.model.element.VariableElement parameter,
                                                          int index)
      • getHeaderParam

        protected abstract java.lang.String getHeaderParam​(javax.lang.model.element.ExecutableElement method,
                                                           javax.lang.model.element.VariableElement parameter,
                                                           int index)
      • getFormParam

        protected abstract java.lang.String getFormParam​(javax.lang.model.element.ExecutableElement method,
                                                         javax.lang.model.element.VariableElement parameter,
                                                         int index)
      • parseParameter

        protected RestMethodData.ParameterInfo parseParameter​(javax.lang.model.element.ExecutableElement method,
                                                              javax.lang.model.element.VariableElement parameter,
                                                              java.util.Map<java.lang.String,​com.sun.source.doctree.ParamTree> paramTags,
                                                              int index)
      • getRequiredStatus

        protected RequiredStatus getRequiredStatus​(javax.lang.model.element.ExecutableElement method,
                                                   javax.lang.model.element.VariableElement parameter,
                                                   int index)
      • addNestedMap

        protected void addNestedMap​(javax.lang.model.type.TypeMirror type,
                                    java.util.List<RestMethodData.ParameterInfo> parentList)
      • addNestedArray

        protected void addNestedArray​(javax.lang.model.type.TypeMirror type,
                                      java.util.List<RestMethodData.ParameterInfo> parentList)
      • addNestedParameters

        protected void addNestedParameters​(javax.lang.model.type.TypeMirror type,
                                           java.util.List<RestMethodData.ParameterInfo> parentList,
                                           java.util.List<javax.lang.model.type.TypeMirror> parentTypes)
      • getAllowedValuesFromType

        protected java.util.List<RestMethodData.AllowedValue> getAllowedValuesFromType​(javax.lang.model.type.TypeMirror type)
      • getAllowedValuesFromLinkTag

        protected java.util.Optional<java.util.List<RestMethodData.AllowedValue>> getAllowedValuesFromLinkTag​(javax.lang.model.element.Element e,
                                                                                                              java.util.List<? extends com.sun.source.doctree.DocTree> tags)
      • getAllowedValuesFromSeeTag

        protected java.util.Optional<java.util.List<RestMethodData.AllowedValue>> getAllowedValuesFromSeeTag​(javax.lang.model.element.Element e,
                                                                                                             java.util.List<? extends com.sun.source.doctree.DocTree> tags)
      • getConstraintsFromLinkTag

        protected java.util.Optional<java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>>> getConstraintsFromLinkTag​(javax.lang.model.element.Element e,
                                                                                                                                                             java.util.List<? extends com.sun.source.doctree.DocTree> tags)
      • getConstraintsFromSeeTag

        protected java.util.Optional<java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>>> getConstraintsFromSeeTag​(javax.lang.model.element.Element e,
                                                                                                                                                            java.util.List<? extends com.sun.source.doctree.DocTree> tags)
      • addCustomParameters

        protected void addCustomParameters​(javax.lang.model.element.ExecutableElement method,
                                           RestMethodData data)
      • addCustomParameter

        protected void addCustomParameter​(javax.lang.model.element.AnnotationMirror parameterDesc,
                                          RestMethodData data)
      • parseCustomParameterInfo

        protected RestMethodData.ParameterInfo parseCustomParameterInfo​(javax.lang.model.element.AnnotationMirror parameterDesc)
      • addMethodData

        protected void addMethodData​(javax.lang.model.element.ExecutableElement method,
                                     RestMethodData data)
      • getRootPath

        protected abstract java.lang.String getRootPath​(javax.lang.model.element.TypeElement classDoc)
      • getPath

        protected abstract java.lang.String getPath​(javax.lang.model.element.ExecutableElement methodDoc)
      • addPath

        protected void addPath​(javax.lang.model.element.ExecutableElement method,
                               RestMethodData data)
      • addDescription

        protected void addDescription​(javax.lang.model.element.ExecutableElement method,
                                      RestMethodData data)
      • addCurl

        protected void addCurl​(javax.lang.model.element.ExecutableElement methodDoc,
                               RestMethodData data)
      • addLabel

        protected void addLabel​(javax.lang.model.element.ExecutableElement method,
                                RestMethodData data)
      • addDeprecated

        protected void addDeprecated​(javax.lang.model.element.ExecutableElement method,
                                     RestMethodData data)
      • getConsumes

        protected abstract java.util.List<javax.lang.model.element.AnnotationValue> getConsumes​(javax.lang.model.element.ExecutableElement method)
      • getProduces

        protected abstract java.util.List<javax.lang.model.element.AnnotationValue> getProduces​(javax.lang.model.element.ExecutableElement method)
      • addMediaType

        protected void addMediaType​(javax.lang.model.element.ExecutableElement method,
                                    RestMethodData data)
      • addResponseData

        protected void addResponseData​(javax.lang.model.element.ExecutableElement method,
                                       RestMethodData data)
      • addResponsesFromAnnotations

        protected void addResponsesFromAnnotations​(javax.lang.model.element.ExecutableElement method,
                                                   RestMethodData data)
      • addResponse

        protected void addResponse​(javax.lang.model.element.AnnotationMirror response,
                                   RestMethodData data,
                                   java.util.List<javax.lang.model.element.AnnotationValue> produces)
      • getResponseEntityClass

        protected javax.lang.model.type.TypeMirror getResponseEntityClass​(javax.lang.model.element.ExecutableElement method,
                                                                          javax.lang.model.element.AnnotationMirror response)
      • addCommonResponseData

        protected void addCommonResponseData​(javax.lang.model.element.AnnotationMirror response,
                                             java.util.List<javax.lang.model.element.AnnotationValue> produces,
                                             RestMethodData.ResponseData responseData)