Map<String, Param> wadlResourceParams) {
if (m.getParameters().isEmpty()) {
return null;
}
Request wadlRequest = _wadlGenerator.createRequest(r, m);
for (Parameter p : m.getParameters()) {
if (p.getSource() == Parameter.Source.ENTITY) {
for (MediaType mediaType : m.getSupportedInputTypes()) {
setRepresentationForMediaType(r, m, mediaType, wadlRequest);
}
} else if (p.getAnnotation().annotationType() == FormParam.class) {
// Use application/x-www-form-urlencoded if no @Consumes
List<MediaType> supportedInputTypes = m.getSupportedInputTypes();
if (supportedInputTypes.isEmpty()
|| (supportedInputTypes.size() == 1 && supportedInputTypes.get(0).isWildcardType())) {
supportedInputTypes = Collections.singletonList(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
}
for (MediaType mediaType : supportedInputTypes) {
final Representation wadlRepresentation = setRepresentationForMediaType(r, m, mediaType, wadlRequest);
if (getParamByName(wadlRepresentation.getParam(), p.getSourceName()) == null) {
final Param wadlParam = generateParam(r, m, p);
if (wadlParam != null) {
wadlRepresentation.getParam().add(wadlParam);
}
}
}
} else if (p.getAnnotation().annotationType().getName().equals("com.sun.jersey.multipart.FormDataParam")) { // jersey-multipart support
// Use multipart/form-data if no @Consumes
List<MediaType> supportedInputTypes = m.getSupportedInputTypes();
if (supportedInputTypes.isEmpty()
|| (supportedInputTypes.size() == 1 && supportedInputTypes.get(0).isWildcardType())) {
supportedInputTypes = Collections.singletonList(MediaType.MULTIPART_FORM_DATA_TYPE);
}
for (MediaType mediaType : supportedInputTypes) {
final Representation wadlRepresentation = setRepresentationForMediaType(r, m, mediaType, wadlRequest);
if (getParamByName(wadlRepresentation.getParam(), p.getSourceName()) == null) {
final Param wadlParam = generateParam(r, m, p);
if (wadlParam != null) {
wadlRepresentation.getParam().add(wadlParam);
}
}
}
} else {
Param wadlParam = generateParam(r, m, p);
if (wadlParam == null) {
continue;
}
if (wadlParam.getStyle() == ParamStyle.TEMPLATE || wadlParam.getStyle() == ParamStyle.MATRIX) {
wadlResourceParams.put(wadlParam.getName(), wadlParam);
} else {
wadlRequest.getParam().add(wadlParam);
}
}
}
if (wadlRequest.getRepresentation().size() + wadlRequest.getParam().size() == 0) {
return null;
} else {
return wadlRequest;
}
}