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();
}
}
Aggregations