Annotation[] annotations = methodInfo.parameterAnnotations[i];
if (annotations == null || annotations.length == 0)
{ // JSON on body
if(hasBodyObject)
{
throw new CruxGeneratorException("Invalid Method: " + methodInfo.method.getEnclosingType().getName() + "." + methodInfo.method.getName() + "(). " +
"Request body can not contain more than one body parameter (JSON serialized object).");
}
hasBodyObject = true;
String serializerName = new JSonSerializerProxyCreator(context, logger, parameters[i].getType()).create();
srcWriter.println(builder+".setHeader(\""+HttpHeaderNames.CONTENT_TYPE+"\", \"application/json\");");
srcWriter.println("JSONValue serialized = new "+serializerName+"().encode("+parameters[i].getName()+");");
srcWriter.println("String requestData = (serialized==null||serialized.isNull()!=null)?null:serialized.toString();");
}
else
{
for (Annotation annotation : annotations)
{
JParameter parameter = parameters[i];
JType parameterType = parameter.getType();
String parameterName = parameter.getName();
formEncoded = generateMethodParamToBodyCodeForAnnotatedParameter(srcWriter, builder, parameters, formEncoded, i, annotation, parameterType, parameterName);
}
}
}
if (hasBodyObject && formEncoded)
{
throw new CruxGeneratorException("Invalid Method: " + methodInfo.method.getEnclosingType().getName() + "." + methodInfo.method.getName() + "(). " +
"Request body can not contain form parameters and a JSON serialized object.");
}
if (hasBodyObject || formEncoded)
{
if (httpMethod.equals("GET"))
{
throw new CruxGeneratorException("Invalid Method: " + methodInfo.method.getEnclosingType().getName() + "." + methodInfo.method.getName() + "(). " +
"Can not use request body parameters on a GET operation.");
}
srcWriter.println(builder+".setRequestData(requestData);");
}
}