diff --git a/src/main/java/org/codelibs/fess/helper/DocumentHelper.java b/src/main/java/org/codelibs/fess/helper/DocumentHelper.java index 40832cfe1..f2f1a95f4 100644 --- a/src/main/java/org/codelibs/fess/helper/DocumentHelper.java +++ b/src/main/java/org/codelibs/fess/helper/DocumentHelper.java @@ -252,4 +252,16 @@ public class DocumentHelper { return hash; } + public String appendLineNumber(final String prefix, final String content) { + if (content == null) { + return StringUtil.EMPTY; + } + final String[] values = content.split("\n"); + final StringBuilder buf = new StringBuilder((int) (content.length() * 1.3)); + buf.append(prefix).append(1).append(':').append(values[0]); + for (int i = 1; i < values.length; i++) { + buf.append('\n').append(prefix).append(i + 1).append(':').append(values[i]); + } + return buf.toString(); + } } diff --git a/src/test/java/org/codelibs/fess/helper/DocumentHelperTest.java b/src/test/java/org/codelibs/fess/helper/DocumentHelperTest.java index 6d3c0bb53..544061aef 100644 --- a/src/test/java/org/codelibs/fess/helper/DocumentHelperTest.java +++ b/src/test/java/org/codelibs/fess/helper/DocumentHelperTest.java @@ -174,4 +174,15 @@ public class DocumentHelperTest extends UnitFessTestCase { assertNull(documentHelper.decodeSimilarDocHash(null)); } + + public void test_appendLineNumber() { + DocumentHelper documentHelper = new DocumentHelper(); + + assertEquals("", documentHelper.appendLineNumber("L", null)); + assertEquals("L1:", documentHelper.appendLineNumber("L", "")); + assertEquals("L1:aaa", documentHelper.appendLineNumber("L", "aaa")); + assertEquals("L1:aaa", documentHelper.appendLineNumber("L", "aaa\n")); + assertEquals("L1:aaa\nL2:bbb", documentHelper.appendLineNumber("L", "aaa\nbbb")); + assertEquals("L1:aaa\nL2:bbb\nL3:ccc", documentHelper.appendLineNumber("L", "aaa\nbbb\nccc")); + } }