//package com.eactive.eai.transformer.message.data;
//
//import java.util.ArrayList;
//import java.util.Iterator;
//
//import com.eactive.eai.common.util.Logger;
//
//
///**
// * 메시지 내부의 데이터를 표현하기 위한 Class.
// * 계층 구조를 가지므로 순회하면서 데이터에 접근해야함.
// * 단, 자식 데이터가 존재할 경우는 해당 노드에 대한 값은 무시됨.
// * 즉, 자식 데이터일 경우만 데이터 값에 대한 접근을 하도록 한다.
// */
//public class MessageData {
////    private static Logger logger = Logger.getLogger("transformer");
//
//    // Lazy Initialization
//    private ArrayList dataList;
//
//    public DataNode addDataNode(DataNode node) {
//        if (dataList == null) {
//            dataList = new ArrayList();
//        }
//
//        dataList.add(node);
//
//        return node;
//    }
//
//    public DataNode getDataNode(int index) {
//        if (dataList == null) {
//            return null;
//        }
//
//        return (DataNode) dataList.get(index);
//    }
//
//    public int getDataNodeCount() {
//        return ((dataList == null) ? 0 : dataList.size());
//    }
//
//    public Iterator getDataNodeIterator() {
//        return ((dataList == null) ? null : dataList.iterator());
//    }
//
//    public boolean hasChild() {
//        return (dataList != null);
//    }
//
//    public DataNode findDataNode(String name) {
//        if (dataList == null) {
//            return null;
//        }
//
//        for (Iterator itr = dataList.iterator(); itr.hasNext();) {
//            DataNode childNode = (DataNode) itr.next();
//
//            if (childNode != null && childNode.getName().equals(name)) {
//                return childNode;
//            }
//        }
//
//        return null;
//    }
//
////    public void debugMessageData() {
////        if (dataList == null) {
////            if(logger.isDebugEnabled()) logger.debug("[DEBUG][MESSAGE DATA] 메시지 데이터 정보가 없습니다.");
////        } else {
////            for (Iterator itr = dataList.iterator(); itr.hasNext();) {
////                DataNode dataNode = (DataNode) itr.next();
////                debugDataNode(dataNode, 0);
////            }
////        }
////    }
////
////    private void debugDataNode(DataNode dataNode, int depth) {
////        printDepth(depth);
////        System.out.print("[DATA:" + dataNode.getName() + "] ");
////
////        int count = dataNode.getDataCount();
////
////        for (int i = 0; i < count; i++) {
////            if (i != 0) {
////                System.out.print(", ");
////            }
////
////            System.out.print(dataNode.getData(i));
////        }
////
////        if(logger.isDebugEnabled()) logger.debug("\n");
////
////        count = dataNode.getChildCount();
////
////        for (int i = 0; i < count; i++) {
////            debugDataNode(dataNode.getNode(i), depth + 1);
////        }
////    }
//
////    private void printDepth(int depth) {
////        for (int i = 0; i < depth; i++) {
////            System.out.print("----");
////        }
////
////        if (depth > 0) {
////            System.out.print(" ");
////        }
////    }
//}
