package com.gustz.dove.cli.api.service.util;
import javax.xml.bind.annotation.adapters.XmlAdapter;
/**
* Depict: JAXB CDATA Adapter
*
* @author zhangzhenfeng
* @date [Nov 7, 2014]
*
*/
public class CDataJaxbAdapter extends XmlAdapter<String, String> {
private static final String PREFIX_CDATA = "<![CDATA[";
private static final String SUFFIX_CDATA = "]]>";
/**
* XML text to bean value
*
* @param xml
* @return
* @throws Exception
*/
@Override
public String unmarshal(String xml) throws Exception {
if (xml != null && !xml.isEmpty()) {
xml = xml.replace(PREFIX_CDATA, "").replace(SUFFIX_CDATA, "");
}
return xml;
}
/**
* Bean value to XML text
*
* @param val
* @return
* @throws Exception
*/
@Override
public String marshal(String val) throws Exception {
if (val != null && !val.isEmpty() && !val.contains(PREFIX_CDATA)) {
val = PREFIX_CDATA + val + SUFFIX_CDATA;
}
return val;
}
}