package com.docus.server.report.converter;

import org.w3c.dom.Node;

/**
 * @author wyb
 */
public interface XmlMessageConverter {

    /**
     * 从node获取值，node为空返回 null
     *
     * @param node 节点
     * @return 值
     */
    default String getNodeValue(Node node) {
        return getTextContentOrDefault(node, null);
    }

    /**
     * 从node获取值，node为空返回默认值
     *
     * @param node       节点
     * @param defaultVal 默认值
     * @return 值
     */
    default String getNodeValueOrDefault(Node node, String defaultVal) {
        return node == null ? defaultVal : node.getNodeValue();
    }

    /**
     * 从node获取内容，node为空返回null
     *
     * @param node 节点
     * @return 值
     */
    default String getTextContent(Node node) {
        return getTextContentOrDefault(node, null);
    }

    /**
     * 从node获取内容，node为空返回默认值
     *
     * @param node       节点
     * @param defaultVal 默认值
     * @return 值
     */
    default String getTextContentOrDefault(Node node, String defaultVal) {
        return node == null ? defaultVal : node.getTextContent();
    }
}
