2010-08-01 3 views
9

그것은 (http://x-stream.github.io/javadoc/com/thoughtworks/xstream/XStream.html는 예를 보여줍니다) 특정 유형의 컨버터를 설정하기 쉽습니다 :특정 요소에 대해서만 XStream 변환기를 연결하는 방법은 무엇입니까?

xstream.registerConverter(new SqlTimestampConverter()); 
xstream.registerConverter(new DynamicProxyConverter()); 

내가 변환기를 등록하려고합니다,하지만 다른 요소 이름에 대한 것입니다. Converter 인터페이스는 요소의 이름을 제공하지 않습니다.

예 : 요소 이름 (속성 이름)이 <longDate> 일 경우 날짜를 자세한 문자열로 변환해야하지만 <shortDate> 인 경우 날짜가 짧아야합니다. 속성 이름을 기반으로 다른 변환기를 추가하려면 어떻게합니까? xstream.registerConverter (class classtype, propertyname, converter)와 같은 것이 존재하지 않았지만 좋을 것입니다.

필자는 PrettyPrintWriter의 특수 버전을 사용할 수 있다는 것을 알고 있지만,이 간단한 작업에 많은 도움이 될 것 같습니다. 다른 아이디어?

BTW : @XStreamConverter (XXX.class) 특수 효과를 사용할 수 있지만 특수 효과를 사용하고 싶지 않습니다. 내 콩에 주석이 없기를 바란다.

답변

6

registerConverter() 대신 registerLocalConverter()을 사용하십시오.

xstream.registerLocalConverter(MyClazz.class, "property", new MyConverter()); 
관련 문제