001package io.avaje.http.generator.core;
002
003import io.avaje.http.generator.core.openapi.MethodDocBuilder;
004
005import javax.lang.model.element.VariableElement;
006
007public class MethodParam {
008
009  private final ElementReader elementParam;
010
011  MethodParam(VariableElement param, String rawType, ProcessingContext ctx, ParamType defaultParamType, boolean formMarker) {
012    this.elementParam = new ElementReader(param, rawType, ctx, defaultParamType, formMarker);
013  }
014
015  public void writeCtxGet(Append writer, PathSegments segments) {
016    elementParam.writeCtxGet(writer, segments);
017  }
018
019  public void addImports(ControllerReader bean) {
020    elementParam.addImports(bean);
021  }
022
023  public void writeValidate(Append writer) {
024    elementParam.writeValidate(writer);
025  }
026
027  public void buildParamName(Append writer) {
028    elementParam.writeParamName(writer);
029  }
030
031  public void buildApiDocumentation(MethodDocBuilder methodDoc) {
032    elementParam.buildApiDocumentation(methodDoc);
033  }
034
035  public boolean isBody() {
036    return elementParam.getParamType() == ParamType.BODY;
037  }
038
039  public boolean isForm() {
040    return elementParam.getParamType() == ParamType.FORM;
041  }
042
043  public String getShortType() {
044    return elementParam.getShortType();
045  }
046
047  public String getName() {
048    return elementParam.getVarName();
049  }
050
051}