diff options
author | Tomasz Zarna | 2011-10-13 11:36:27 +0000 |
---|---|---|
committer | Tomasz Zarna | 2011-10-13 11:36:27 +0000 |
commit | f0e53ee2640b02d1f95f87dfcfa88331c3336845 (patch) | |
tree | 666e298f81221c128f3c0249c32154b1aef93861 /bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java | |
parent | e4281ecfd04ac79545ba778419a1cfa257818d4c (diff) | |
download | eclipse.platform.team-f0e53ee2640b02d1f95f87dfcfa88331c3336845.tar.gz eclipse.platform.team-f0e53ee2640b02d1f95f87dfcfa88331c3336845.tar.xz eclipse.platform.team-f0e53ee2640b02d1f95f87dfcfa88331c3336845.zip |
bug 359032: Move plugins under bundles/org.eclipse.compare/plugins/ to
bundles/
Diffstat (limited to 'bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java')
-rw-r--r-- | bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java new file mode 100644 index 000000000..4b4891637 --- /dev/null +++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * Copyright (c) 2004, 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.compare.internal.merge; + +import java.io.*; +import java.util.ArrayList; +import org.eclipse.compare.rangedifferencer.IRangeComparator; + +/** + * This implementation of IRangeComparator breaks an input stream into lines. + */ +class LineComparator implements IRangeComparator { + + private String[] fLines; + + public LineComparator(InputStream is, String encoding) throws IOException { + + BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding)); + String line; + ArrayList ar = new ArrayList(); + while ((line = br.readLine()) != null) { + ar.add(line); + } + // It is the responsibility of the caller to close the stream + fLines = (String[]) ar.toArray(new String[ar.size()]); + } + + String getLine(int ix) { + return fLines[ix]; + } + + /* (non-Javadoc) + * @see org.eclipse.compare.rangedifferencer.IRangeComparator#getRangeCount() + */ + public int getRangeCount() { + return fLines.length; + } + + /* (non-Javadoc) + * @see org.eclipse.compare.rangedifferencer.IRangeComparator#rangesEqual(int, org.eclipse.compare.rangedifferencer.IRangeComparator, int) + */ + public boolean rangesEqual(int thisIndex, IRangeComparator other, + int otherIndex) { + String s1 = fLines[thisIndex]; + String s2 = ((LineComparator) other).fLines[otherIndex]; + return s1.equals(s2); + } + + /* (non-Javadoc) + * @see org.eclipse.compare.rangedifferencer.IRangeComparator#skipRangeComparison(int, int, org.eclipse.compare.rangedifferencer.IRangeComparator) + */ + public boolean skipRangeComparison(int length, int maxLength, IRangeComparator other) { + return false; + } +} |