@@ -105,14 +105,28 @@ private Set<String> writeConstructorParams(Append writer) {
105105 public void writeFormParams (Append writer ) {
106106 for (FieldReader field : fieldMap .values ()) {
107107 ExecutableElement getter = findGetter (field .getVarName ());
108- if (getter != null ) {
109- writer .append (" .formParam(\" %s\" , %s.%s)" , field .getVarName (), beanVarName , getter .toString ()).eol ();
110- } else if (field .isPublic ()) {
111- writer .append (" .formParam(\" %s\" , %s.%s)" , field .getVarName (), beanVarName , field .getVarName ()).eol ();
108+ ParamType paramType = field .element .getParamType ();
109+ String type = propertyParamType (paramType );
110+ if (type != null ) {
111+ String accessor = (getter != null ) ? getter .toString () : field .isPublic () ? field .getVarName () : null ;
112+ if (accessor != null ) {
113+ writer .append (" .%s(\" %s\" , %s.%s)" , type , field .getParamName (), beanVarName , accessor ).eol ();
114+ }
112115 }
113116 }
114117 }
115118
119+ private String propertyParamType (ParamType paramType ) {
120+ switch (paramType ) {
121+ case FORMPARAM :
122+ case QUERYPARAM :
123+ case HEADER :
124+ return paramType .toString ();
125+ default :
126+ return null ;
127+ }
128+ }
129+
116130 private ExecutableElement findGetter (String varName ) {
117131 ExecutableElement getter = methodMap .get (varName );
118132 if (getter == null ) {
@@ -141,6 +155,10 @@ boolean isPublic() {
141155 return element .getElement ().getModifiers ().contains (Modifier .PUBLIC );
142156 }
143157
158+ String getParamName () {
159+ return element .getParamName ();
160+ }
161+
144162 String getVarName () {
145163 return element .getVarName ();
146164 }
0 commit comments