Oi pessoal, tenho um converter pra List<Jsonable> que me retorna uma lista na primeira posição de outra lista, pegando a posição 0 da primeira lista e fazendo um cast para o List<Jsonable> funciona, mas eu queria deixar funcionando certinho sem esta “gambiarra”…
Segue códigos:
JsonableConverter
Este Converter retorna sempre uma lista de Jsonable independente se ele esta recebendo um json ou um array de json…
@Convert(Jsonable.class)
public class JsonableConverter implements Converter<List><Jsonable>> {
public List<Jsonable> convert(String value, Class<? extends List<Jsonable>> type, ResourceBundle arg2) {
ArrayList<Jsonable> list = new ArrayList<Jsonable>();
if (value.substring(0, 2).equals("[{")){
JSONArray arrayJson;
try {
arrayJson = new JSONArray(value);
for (int i = 0; i < arrayJson.length(); i++) {
String json = "{\"data\":"+ arrayJson.getJSONObject(i).toString() +"}";
addJsonable(list, json, type);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
String json = "{\"data\":"+ value +"}";
addJsonable(list, json, type);
}
return list;
}
@SuppressWarnings("rawtypes")
private void addJsonable(List<Jsonable> list, String json, Class type){
XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.alias("data", type);
list.add((Jsonable) xstream.fromXML(json));
}
}
LoginConverter
Obs: o objeto usuarios deveria conter um lista de usuario, porém, ele vem apenas com um item, na posição 0, que este sim é uma lista de usuario, do jeito que esta aqui funciona…
@Path("/login/autenticar")
public void autenticar(List<Usuario> usuario, boolean forcar){
try {
List<Usuario> al = (List<Usuario>) usuario.get(0);
this.loginService.autenticar(al.get(0), forcar);
result.use(ExtJSJson.class).from("ok").success(true).serialize();
} catch (ExceptionLogin e) {
String retorno = "{controleInterno:true, msg:'"+e.getMessage()+"', status:"+String.valueOf(e.getEstado())+"}";
result.use(ExtJSJson.class).from(retorno).success(false).serialize();
}
}
Valeu pessoal Obrigado.

mas, o que é pull request? e como faze-lo?