public Request createRequest(AbstractResource r, AbstractResourceMethod m) {
return new Request();
}
public Param createParam( AbstractResource r, AbstractMethod m, final Parameter p ) {
Param wadlParam = new Param();
wadlParam.setName(p.getSourceName());
/* the form param right now has no Parameter.Source representation
* and requires some special handling
*/
if ( p.getAnnotation().annotationType() == FormParam.class ) {
wadlParam.setStyle( ParamStyle.QUERY );
}
else {
switch (p.getSource()) {
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;
default:
break;
}
}
if (p.hasDefaultValue())
wadlParam.setDefault(p.getDefaultValue());
Class<?> pClass = p.getParameterClass();
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;
}