dynamic converter for retrofit 1.x

import java.lang.reflect.Type;
import com.google.gson.*;
import retrofit.converter.*;
import retrofit.mime.*;
/**
* dynamic converter for retrofit 1.x
* it handle gson, xml, string
* @author lepffm@gmail.com
*/
public class DynamicConverter implements Converter {

private static final String CHARSET = “UTF-8”;
private final GsonConverter gsonConverter;
private final SimpleXMLConverter xmlConverter;
private final StringConverter stringConverter;
public DynamicConverter() {
gsonConverter = new GsonConverter(gson);
xmlConverter = new SimpleXMLConverter();
stringConverter = new StringConverter(CHARSET);
}

static Gson gson = new GsonBuilder()
.setDateFormat(“yyyy’-‘MM’-‘dd’T’HH’:’mm’:’ss’.’SSS’Z'”)
.create();

@Override
public Object fromBody(TypedInput body, Type type) throws ConversionException {
String mime = body.mimeType();
if(type.toString().equals(“class java.lang.String”)){
return stringConverter.fromBody(body, type);
}
else if(mime.startsWith(“application/xml”)){
return xmlConverter.fromBody(body, type);
}else if(mime.startsWith(“application/json”)){
return gsonConverter.fromBody(body, type);
}else{
return stringConverter.fromBody(body, type);
}
}

@Override
public TypedOutput toBody(Object object) {
return stringConverter.toBody(object);
}
}

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중


%d 블로거가 이것을 좋아합니다: