Search in sources :

Example 1 with StringComparator

use of com.baidu.disconf.web.common.comparator.StringComparator in project disconf by knightliao.

the class DiffUtils method getDiff.

/**
     * 专门为disconf打造的对照工具
     *
     * @param old
     * @param newData
     * @param identify
     *
     * @return
     */
public static String getDiff(String old, String newData, String identify, String htmlClick) {
    StringComparator stringComparator = new StringComparator(old, newData);
    String contentString = StringEscapeUtils.escapeHtml4(identify) + "<br/><br/>" + htmlClick + "<br/> ";
    try {
        if (stringComparator.getChangesFromOriginal().size() == 0 && stringComparator.getDeletesFromOriginal().size() == 0 && stringComparator.getInsertsFromOriginal().size() == 0) {
            return "<span style='color:#FF0000'>OK, NO MODIFICATOIN!</span>";
        } else {
            String oldValue = "<br/><br/><br/><span style='color:#FF0000'>Old value:</span><br/>" + StringEscapeUtils.escapeHtml4(old).replaceAll("\n", "<br/>");
            String newValue = "<br/><br/><br/><span style='color:#FF0000'>New value:</span><br/>" + StringEscapeUtils.escapeHtml4(newData).replaceAll("\n", "<br/>");
            String diff = "";
            if (stringComparator.getChangesFromOriginal().size() != 0) {
                diff = "<span style='color:#FF0000'>Change info: </span><br/>";
                for (Chunk chunk : stringComparator.getChangesFromOriginal()) {
                    diff += StringEscapeUtils.escapeHtml4(chunk.toString()) + "<br/>";
                }
            }
            if (stringComparator.getInsertsFromOriginal().size() != 0) {
                diff += "<br/><span style='color:#FF0000'>Insert info: </span><br/>";
                for (Chunk chunk : stringComparator.getInsertsFromOriginal()) {
                    diff += StringEscapeUtils.escapeHtml4(chunk.toString()) + "<br/>";
                }
            }
            if (stringComparator.getDeletesFromOriginal().size() != 0) {
                diff += "<br/><span style='color:#FF0000'>Delete info: </span><br/>";
                for (Chunk chunk : stringComparator.getDeletesFromOriginal()) {
                    diff += StringEscapeUtils.escapeHtml4(chunk.toString()) + "<br/>";
                }
            }
            return contentString + diff + oldValue + newValue;
        }
    } catch (IOException e) {
        LOG.error("compare error", e);
        return "comparator error" + e.toString();
    }
}
Also used : IOException(java.io.IOException) Chunk(difflib.Chunk) StringComparator(com.baidu.disconf.web.common.comparator.StringComparator)

Aggregations

StringComparator (com.baidu.disconf.web.common.comparator.StringComparator)1 Chunk (difflib.Chunk)1 IOException (java.io.IOException)1