This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-188
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
The following commit(s) were added to refs/heads/FREEMARKER-188 by this push:
new 97b5f90 FREEMARKER-188 Cleanup code
97b5f90 is described below
commit 97b5f905fe0cd8dd82c0cf1a91079c1f7bb2c501
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Fri Sep 10 22:15:24 2021 +0200
FREEMARKER-188 Cleanup code
---
.../generator/base/datasource/DataSource.java | 28 +++++++++++++++------
.../generator/base/util/StringUtils.java | 8 ++++++
.../generator/datasource/DataSourceTest.java | 5 ++--
.../app/templates/freemarker-generator/info.ftl | 29 +++++++++++-----------
4 files changed, 47 insertions(+), 23 deletions(-)
diff --git
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
index 61c014c..779e955 100644
---
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
+++
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
@@ -60,25 +60,28 @@ import static
org.apache.freemarker.generator.base.mime.Mimetypes.MIME_APPLICATI
public class DataSource implements Closeable, javax.activation.DataSource {
public static final String METADATA_BASE_NAME = "baseName";
+ public static final String METADATA_CHARSET = "charset";
public static final String METADATA_EXTENSION = "extension";
public static final String METADATA_FILE_NAME = "fileName";
public static final String METADATA_FILE_PATH = "filePath";
- public static final String METADATA_RELATIVE_FILE_PATH =
"relativeFilePath";
public static final String METADATA_GROUP = "group";
+ public static final String METADATA_MIME_TYPE = "mimeType";
public static final String METADATA_NAME = "name";
+ public static final String METADATA_RELATIVE_FILE_PATH =
"relativeFilePath";
public static final String METADATA_URI = "uri";
- public static final String METADATA_MIME_TYPE = "mimeType";
+ /** List of metadata keys */
public static final List<String> METADATA_KEYS = Arrays.asList(
METADATA_BASE_NAME,
+ METADATA_CHARSET,
METADATA_EXTENSION,
METADATA_FILE_NAME,
METADATA_FILE_PATH,
- METADATA_RELATIVE_FILE_PATH,
METADATA_GROUP,
+ METADATA_MIME_TYPE,
METADATA_NAME,
- METADATA_URI,
- METADATA_MIME_TYPE
+ METADATA_RELATIVE_FILE_PATH,
+ METADATA_URI
);
/** Human-readable name of the data source */
@@ -194,6 +197,16 @@ public class DataSource implements Closeable,
javax.activation.DataSource {
}
/**
+ * Get the path from the underlying "FileDataSource". All
+ * other data sources will return an empty string.
+ *
+ * @return file name or empty string
+ */
+ public String getFilePath() {
+ return isFileDataSource() ?
FilenameUtils.getFullPathNoEndSeparator(uri.getPath()) : "";
+ }
+
+ /**
* Get the base name from the underlying "FileDataSource". All
* other data sources will return an empty string.
*
@@ -363,12 +376,14 @@ public class DataSource implements Closeable,
javax.activation.DataSource {
switch (key) {
case METADATA_BASE_NAME:
return getBaseName();
+ case METADATA_CHARSET:
+ return getCharset().name();
case METADATA_EXTENSION:
return getExtension();
case METADATA_FILE_NAME:
return getFileName();
case METADATA_FILE_PATH:
- return FilenameUtils.getFullPathNoEndSeparator(uri.getPath());
+ return getFilePath();
case METADATA_RELATIVE_FILE_PATH:
return getRelativeFilePath();
case METADATA_GROUP:
@@ -457,7 +472,6 @@ public class DataSource implements Closeable,
javax.activation.DataSource {
return dataSource instanceof ByteArrayDataSource;
}
-
public static final class DataSourceBuilder {
private String name;
private String group;
diff --git
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
index c3eabf1..c41fefa 100644
---
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
+++
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/StringUtils.java
@@ -30,6 +30,10 @@ public class StringUtils {
return value != null && value.trim().isEmpty() ? null : value;
}
+ public static String nullToEmpty(String value) {
+ return isEmpty(value) ? "" : value;
+ }
+
public static String firstNonEmpty(final String... values) {
if (values != null) {
for (final String value : values) {
@@ -41,6 +45,10 @@ public class StringUtils {
return null;
}
+ public static String trim(String value) {
+ return value != null ? value.trim() : null;
+ }
+
public static int count(final String s, final char c) {
final char[] chars = s.toCharArray();
int count = 0;
diff --git
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceTest.java
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceTest.java
index d906e48..cb7b252 100644
---
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceTest.java
+++
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceTest.java
@@ -131,17 +131,18 @@ public class DataSourceTest {
try (DataSource dataSource = stringDataSource()) {
final Map<String, String> metadata = dataSource.getMetadata();
- assertEquals(9, metadata.size());
+ assertEquals(10, metadata.size());
assertEquals("", metadata.get("baseName"));
assertEquals("", metadata.get("extension"));
assertEquals("", metadata.get("fileName"));
- assertEquals("/", metadata.get("filePath"));
+ assertEquals("", metadata.get("filePath"));
assertEquals("", metadata.get("relativeFilePath"));
assertEquals("default", metadata.get("group"));
assertEquals("stdin", metadata.get("name"));
assertTrue(metadata.get("uri").startsWith("string://"));
assertEquals("text/plain", metadata.get("mimeType"));
+ assertEquals("UTF-8", metadata.get("charset"));
}
}
diff --git
a/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
b/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
index 8208074..05eff21 100644
--- a/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
+++ b/freemarker-generator-cli/src/app/templates/freemarker-generator/info.ftl
@@ -50,21 +50,22 @@ FreeMarker Generator Data Model
FreeMarker Generator Data Sources
==============================================================================
<#if dataSources?has_content>
-<#list dataSources?values as ds>
+<#list dataSources?values as dataSource>
-DataSource #${ds?counter}
+DataSource #${dataSource?counter}
------------------------------------------------------------------------------
-name=${ds.name}
-group=${ds.group}
-contentType=${ds.contentType}
-fileName=${ds.fileName}
-baseName=${ds.baseName}
-extension=${ds.extension}
-relativeFilePath=${ds.relativeFilePath}
-charset=${ds.charset}
-mimeType=${ds.mimeType}
-uri=${ds.uri}
-length=${ds.length} Bytes
+name : ${dataSource.name}
+group : ${dataSource.group}
+contentType : ${dataSource.contentType}
+fileName : ${dataSource.fileName}
+baseName : ${dataSource.baseName}
+extension : ${dataSource.extension}
+relativeFilePath : ${dataSource.relativeFilePath}
+charset : ${dataSource.charset}
+mimeType : ${dataSource.mimeType}
+uri : ${dataSource.uri}
+length : ${dataSource.length} bytes
+metadata : ${dataSource.metadata?size} entries
</#list>
<#else>
@@ -90,5 +91,5 @@ FreeMarker Generator Tools
==============================================================================
<#list tools?keys?sort as name>
-- ${name?right_pad(20)} : ${tools[name]}
+- ${name?right_pad(19)} : ${tools[name]}
</#list>