package com.baidu.disconf.web.common.comparator; import java.io.IOException; import java.util.ArrayList; import java.util.List; import difflib.Chunk; import difflib.Delta; /** * @author knightliao */ public abstract class CommonComparator { public List<Chunk> getChangesFromOriginal() throws IOException { return getChunksByType(Delta.TYPE.CHANGE); } public List<Chunk> getInsertsFromOriginal() throws IOException { return getChunksByType(Delta.TYPE.INSERT); } public List<Chunk> getDeletesFromOriginal() throws IOException { return getChunksByType(Delta.TYPE.DELETE); } protected abstract List<Delta> getDeltas() throws IOException; private List<Chunk> getChunksByType(Delta.TYPE type) throws IOException { final List<Chunk> listOfChanges = new ArrayList<Chunk>(); final List<Delta> deltas = getDeltas(); for (Delta delta : deltas) { if (delta.getType() == type) { listOfChanges.add(delta.getRevised()); } } return listOfChanges; } }