Skip to content

Commit

Permalink
Merge pull request #21 from spdx/fixtextformat
Browse files Browse the repository at this point in the history
Fix text formatting
  • Loading branch information
goneall authored Apr 10, 2018
2 parents 89d13f1 + 6dc2d52 commit 0543489
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 12 deletions.
22 changes: 11 additions & 11 deletions Test/org/spdx/licensexml/LicenseXmlDocumentTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,38 +49,38 @@ public class LicenseXmlDocumentTest {
static final String TEST_FILE_PATH = "TestFiles" + File.separator + "test-license.xml";
private static final String TEST_LICENSE_COMMENT = "Test note";
private static final String TEST_LICENSE_ID = "test-id";
private static final String TEST_LICENSE_TEXT = "Test Copyright\nparagraph 1" +
"\n 1.\n List item 1\n 2.\n List item 2\n" +
private static final String TEST_LICENSE_TEXT = "Test Copyright\n\nparagraph 1" +
"\n\n 1.\n\n List item 1\n\n 2.\n\n List item 2\n\n" +
"Last Paragraph Alternate Text Non matching line. Optional text";
private static final String TEST_LICENSE_NAME = "Test License";
private static final String[] TEST_LICENSE_URLS = new String[] {"http://test/url1","http://test/url2"};
private static final String TEST_LICENSE_HEADER = "Test header optional var";
private static final String TEST_LICENSE_HEADER_TEMPLATE = "Test header<<beginOptional>> optional<<endOptional>> <<var;name=\"h1test\";original=\"var\";match=\".+\">>";
private static final String TEST_LICENSE_TEMPLATE = "Test Copyright\nparagraph 1" +
"\n <<var;name=\"bullet\";original=\"1.\";match=\".{0,20}\">>\n List item 1\n <<var;name=\"bullet\";original=\"2.\";match=\".{0,20}\">>\n List item 2\n" +
private static final String TEST_LICENSE_TEMPLATE = "Test Copyright\n\nparagraph 1" +
"\n\n <<var;name=\"bullet\";original=\"1.\";match=\".{0,20}\">>\n\n List item 1\n\n <<var;name=\"bullet\";original=\"2.\";match=\".{0,20}\">>\n\n List item 2\n\n" +
"Last Paragraph <<var;name=\"alttest\";original=\"Alternate Text\";match=\".+\">> Non matching line.<<beginOptional>> Optional text<<endOptional>>";

private static final String TEST_DEP_LICENSE_COMMENT = "Test dep note";
private static final String TEST_DEP_LICENSE_ID = "test-dep";
private static final String TEST_DEP_LICENSE_TEXT = "Test Copyright dep\nparagraph 1d" +
"\n 1.d\n List item 1d\n 2.d\n List item 2d\n" +
private static final String TEST_DEP_LICENSE_TEXT = "Test Copyright dep\n\nparagraph 1d" +
"\n\n 1.d\n\n List item 1d\n\n 2.d\n\n List item 2d\n\n" +
"Last Paragraph dep Alternate Text dep Non matching line dep. Optional text dep";
private static final String TEST_DEP_LICENSE_NAME = "Test Deprecated License";
private static final String[] TEST_DEP_LICENSE_URLS = new String[] {"http://test/url1d","http://test/url2d"};
private static final String TEST_DEP_LICENSE_HEADER = "Test header dep";
private static final String TEST_DEP_LICENSE_TEMPLATE = "Test Copyright dep\nparagraph 1d" +
"\n <<var;name=\"bullet\";original=\"1.d\";match=\".{0,20}\">>\n List item 1d\n <<var;name=\"bullet\";original=\"2.d\";match=\".{0,20}\">>\n List item 2d\n" +
private static final String TEST_DEP_LICENSE_TEMPLATE = "Test Copyright dep\n\nparagraph 1d" +
"\n\n <<var;name=\"bullet\";original=\"1.d\";match=\".{0,20}\">>\n\n List item 1d\n\n <<var;name=\"bullet\";original=\"2.d\";match=\".{0,20}\">>\n\n List item 2d\n\n" +
"Last Paragraph dep <<var;name=\"alttestd\";original=\"Alternate Text dep\";match=\".+\">> Non matching line dep.<<beginOptional>> Optional text dep<<endOptional>>";

private static final String TEST_EXCEPTION_COMMENT = "Test note exception";
private static final String TEST_EXCEPTION_ID = "test-ex";
private static final String TEST_EXCEPTION_TEXT = "Test Copyrighte\nparagraph 1e" +
"\n 1.e\n List item 1e\n 2.e\n List item 2e\n" +
private static final String TEST_EXCEPTION_TEXT = "Test Copyrighte\n\nparagraph 1e" +
"\n\n 1.e\n\n List item 1e\n\n 2.e\n\n List item 2e\n\n" +
"Last Paragraph exc Alternate Text exc Non matching line. e Optional text exc";
private static final String TEST_EXCEPTION_NAME = "Test Exception";
private static final String[] TEST_EXCEPTION_URLS = new String[] {"http://test/url1e","http://test/url2e"};
@SuppressWarnings("unused")
private static final String TEST_EXCEPTION_TEMPLATE = "Test Copyrighte\nparagraph 1e" +
private static final String TEST_EXCEPTION_TEMPLATE = "Test Copyrighte\n\nparagraph 1e" +
"\n 1.e\n List item 1e\n 2.e\n List item 2e\n" +
"Last Paragraph exc <<var;name=\"altteste\";original=\"Alternate Text exc\";match=\".+\">> Non matching line. e<<beginOptional>> Optional text exc<<endOptional>>";
private static final String TEST_DEP_LICENSE_VERSION = "2.2";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.spdx.rdfparser.license.LicenseException;
import org.spdx.rdfparser.license.SpdxListedLicense;
Expand All @@ -35,6 +37,8 @@
*/
public class LicenseTextFormatWriter implements ILicenseFormatWriter {

private static final int MAX_LINE_CHARS = 80;
private static final int TYPICAL_WORD_CHARS = 8;
private File textFolder;
private Charset utf8 = Charset.forName("UTF-8");

Expand Down Expand Up @@ -69,7 +73,30 @@ public void writeLicense(SpdxListedLicense license, boolean deprecated, String d
licBaseHtmlFileName = "deprecated_" + licBaseHtmlFileName;
}
Path textFilePath = Paths.get(textFolder.getPath(), licBaseHtmlFileName + ".txt");
Files.write(textFilePath, Arrays.asList(license.getLicenseText().split("\\n")), utf8);
String[] lines = license.getLicenseText().split("\\n");
List<String> wordWrappedLines = new ArrayList<String>();
for (String line:lines) {
if (line.length() < MAX_LINE_CHARS) {
wordWrappedLines.add(line);
} else {
String[] words = line.split(" ");
StringBuilder currentLine = new StringBuilder();
for (String word:words)
{
if (currentLine.length() > MAX_LINE_CHARS - TYPICAL_WORD_CHARS) {
wordWrappedLines.add(currentLine.toString());
currentLine.setLength(0);
} else if (currentLine.length() > 0) {
currentLine.append(' ');
}
currentLine.append(word);
}
if (currentLine.length() > 0) {
wordWrappedLines.add(currentLine.toString());
}
}
}
Files.write(textFilePath, wordWrappedLines, utf8);
}

@Override
Expand Down
1 change: 1 addition & 0 deletions src/org/spdx/licensexml/LicenseXmlHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ private static void appendElementChildrenText(Element element,
* @param indentCount
*/
private static void addNewline(StringBuilder sb, int indentCount) {
sb.append('\n');
sb.append('\n');
for (int i = 0; i < indentCount; i ++) {
sb.append(INDENT_STRING);
Expand Down

0 comments on commit 0543489

Please # to comment.