/// <summary> /// 简单的对比工作 /// </summary> /// <param name="old"> </param> /// <param name="newData"> /// /// @return </param> public static string getDiffSimple(string old, string newData) { StringComparator stringComparator = new StringComparator(old, newData); try { return stringComparator.ChangesFromOriginal.ToString(); } catch (IOException e) { LOG.warn(e.ToString()); return ""; } }
/// <summary> /// 专门为disconf打造的对照工具 /// </summary> /// <param name="old"> </param> /// <param name="newData"> </param> /// <param name="identify"> /// /// @return </param> 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.ChangesFromOriginal.Count == 0 && stringComparator.DeletesFromOriginal.Count == 0 && stringComparator.InsertsFromOriginal.Count == 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.ChangesFromOriginal.Count != 0) { diff = "<span style='color:#FF0000'>Change info: </span><br/>"; foreach (Chunk chunk in stringComparator.ChangesFromOriginal) { diff += StringEscapeUtils.escapeHtml4(chunk.ToString()) + "<br/>"; } } if (stringComparator.InsertsFromOriginal.Count != 0) { diff += "<br/><span style='color:#FF0000'>Insert info: </span><br/>"; foreach (Chunk chunk in stringComparator.InsertsFromOriginal) { diff += StringEscapeUtils.escapeHtml4(chunk.ToString()) + "<br/>"; } } if (stringComparator.DeletesFromOriginal.Count != 0) { diff += "<br/><span style='color:#FF0000'>Delete info: </span><br/>"; foreach (Chunk chunk in stringComparator.DeletesFromOriginal) { diff += StringEscapeUtils.escapeHtml4(chunk.ToString()) + "<br/>"; } } return contentString + diff + oldValue + newValue; } } catch (IOException e) { LOG.error("compare error", e); return "comparator error" + e.ToString(); } }