public Param createParam(org.glassfish.jersey.server.model.Resource r, ResourceMethod m, final Parameter p) {
if (p.getSource() == Parameter.Source.UNKNOWN)
return null;
Param wadlParam = new Param();
wadlParam.setName(p.getSourceName());
switch (p.getSource()) {
case FORM:
wadlParam.setStyle(ParamStyle.QUERY);
break;
case QUERY:
wadlParam.setStyle(ParamStyle.QUERY);
break;
case MATRIX:
wadlParam.setStyle(ParamStyle.MATRIX);
break;
case PATH:
wadlParam.setStyle(ParamStyle.TEMPLATE);
break;
case HEADER:
wadlParam.setStyle(ParamStyle.HEADER);
break;
case COOKIE:
// Generates name="Cookie" path="<name>"
wadlParam.setStyle(ParamStyle.HEADER);
wadlParam.setName("Cookie");
wadlParam.setPath(p.getSourceName());
break;
default:
break;
}
if (p.hasDefaultValue())
wadlParam.setDefault(p.getDefaultValue());
Class<?> pClass = p.getRawType();
if (pClass.isArray()) {
wadlParam.setRepeating(true);
pClass = pClass.getComponentType();
}
if (pClass.equals(int.class) || pClass.equals(Integer.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "int", "xs"));
else if (pClass.equals(boolean.class) || pClass.equals(Boolean.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "boolean", "xs"));
else if (pClass.equals(long.class) || pClass.equals(Long.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "long", "xs"));
else if (pClass.equals(short.class) || pClass.equals(Short.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "short", "xs"));
else if (pClass.equals(byte.class) || pClass.equals(Byte.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "byte", "xs"));
else if (pClass.equals(float.class) || pClass.equals(Float.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "float", "xs"));
else if (pClass.equals(double.class) || pClass.equals(Double.class))
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "double", "xs"));
else
wadlParam.setType(new QName("http://www.w3.org/2001/XMLSchema", "string", "xs"));
return wadlParam;
}