//package com.eactive.eai.transformer.message;
//
//import java.io.StringReader;
//
//import org.w3c.dom.Document;
//
//import com.eactive.eai.common.util.ObjectUtil;
//
//public class UXMLMessage extends XMLMessage {
//	private static final long serialVersionUID = 4554248604547237676L;
//
//	public static String NAME = "UXML";	
//	public static String MESSAGE_NAME = "UXMLMessage";
//	public static String encode = "utf-8";
//
//    public void copy(Message message) throws InvalidMessageException {
//        try {
//            Document sourceDocument = ((UXMLMessage) message).getDataDocument();
//            data = (Document) ObjectUtil.deepCopy(sourceDocument);
//        } catch (Exception e) {
//        	logger.error(e.getMessage(), e);
//            throw new InvalidMessageException(e.getMessage(), message, e);
//        }
//    }
//    
//    protected void doSetData(Object data) {
//        try {
//            String xmlData = null;
////            logger.error("doSetData encode = " + encode);
//            if (data instanceof String) {                
//                // 비표준 XML의 경우를 고려하여  XML Header의 유무를 확인해야 한다. 
//                if(((String)data).indexOf("<?xml") == -1) {
//                    xmlData = "<?xml version=\"1.0\" encoding=\""+encode+"\"?>\n" + (String) data;                    
//                }
//                else {                    
//                    xmlData = (String) data;
//                }
////                setDataText(xmlData);
//            /*
//            // 아래는 지원 안함
//            } else if (data instanceof InputStream) {
//                setDataStream((InputStream) data);
//            } else if (data instanceof Document) {
//                setDataDocument((Document) data);
//            */
//            } else {
//                if (data == null) {
//                    throw new InvalidDataTypeException("Not able to generate XML messages with data. Input value is null.", data);
//                } else {
//                    throw new InvalidDataTypeException("Not able to generate XML messages with data. data type = " + data.getClass().getName(), data);
//                }
//            }
//
//            // use DOM
////            org.dom4j.io.DOMReader xmlReader = new org.dom4j.io.DOMReader();
////            org.dom4j.Document document = xmlReader.read((Document) this.data);
//            // use SAX
//            org.dom4j.io.SAXReader saxReader = new org.dom4j.io.SAXReader();
//            org.dom4j.Document document = saxReader.read(new StringReader(xmlData));
//            //-------------------------------------------------
//            // if necessary to DO THIS
////          this.data = new DOMWriter().write(document);
//          //-------------------------------------------------
//            org.dom4j.Element root = document.getRootElement();
//            
//            setValue(root);
//        } catch (Exception e) {
//            throw new MessageSetDataException(e.getMessage(), this, data, e);
//        }
//    }
//    
//    private String getHeader() {
//    	return getName() + " (" + MESSAGE_NAME + ") encoding="+encode;
//    }
//    
//    public String toString() {
//        StringBuffer sb = new StringBuffer();
//        sb.append(getHeader());;
//        sb.append(super.toBodyString());
//        return sb.toString();
//    }
//}
