This is an automated email from the ASF dual-hosted git repository.

sgoeschl pushed a commit to branch FREEMARKER-173
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git

commit fef9df04f7a94013d9589c6b023ccb43d1f9bb4e
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Sun Feb 7 20:24:33 2021 +0100

    FREEMARKER-173 [freemarker-generator] Remove DataSource#load(source,charset)
---
 .../datasource/loader/HttpDataSourceLoader.java    |  2 +-
 .../freemarker/generator/base/uri/NamedUri.java    | 77 +++++++++++++++-------
 .../generator/util/PropertiesTransformerTest.java  |  4 --
 3 files changed, 55 insertions(+), 28 deletions(-)

diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
index 1684f58..74dcb46 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
@@ -43,7 +43,7 @@ public class HttpDataSourceLoader implements DataSourceLoader 
{
         final NamedUri namedUri = NamedUriStringParser.parse(source);
         final URI uri = namedUri.getUri();
         final String group = namedUri.getGroupOrElse(DEFAULT_GROUP);
-        final Charset charset = namedUri.getCharsetOrElse(null);
+        final Charset charset = namedUri.getCharset();
         final String mimeType = namedUri.getMimeType();
         final URL url = toUrl(uri);
         final String name = 
namedUri.getNameOrElse(UriUtils.toStringWithoutFragment(uri));
diff --git 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
index cbe2b01..3602d77 100644
--- 
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
+++ 
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/uri/NamedUri.java
@@ -17,23 +17,29 @@
 package org.apache.freemarker.generator.base.uri;
 
 import org.apache.freemarker.generator.base.util.StringUtils;
+import org.apache.freemarker.generator.base.util.Validate;
 
 import java.io.File;
 import java.net.URI;
 import java.nio.charset.Charset;
+import java.util.HashMap;
 import java.util.Map;
 
-import static java.util.Objects.requireNonNull;
-import static 
org.apache.freemarker.generator.base.util.StringUtils.emptyToNull;
-import static org.apache.freemarker.generator.base.util.StringUtils.isEmpty;
-
 /**
  * Captures the information of a user-supplied "named URI".
+ * <p>
+ * <ul>
+ *     <li><code>name</code> is optional</li>
+ *     <li><code>group</code> is optional</li>
+ * </ul>
  */
 public class NamedUri {
 
-    private static final String CHARSET = "charset";
-    private static final String MIMETYPE = "mimeType";
+    // Pre-defined parameter names
+    private static final String NAME_KEY = "name";
+    private static final String GROUP_KEY = "group";
+    private static final String CHARSET_KEY = "charset";
+    private static final String MIMETYPE_KEY = "mimeType";
 
     /** User-supplied name */
     private final String name;
@@ -47,18 +53,43 @@ public class NamedUri {
     /** Name/value pairs parsed from URI fragment */
     private final Map<String, String> parameters;
 
+    /**
+     * Constructor.
+     * <p>
+     * The <code>name</code> and <code>group</code> a read from 
<code>parameters</code>.
+     *
+     * @param uri        URI
+     * @param parameters map of parameters
+     */
     public NamedUri(URI uri, Map<String, String> parameters) {
-        this.name = null;
-        this.group = null;
-        this.uri = requireNonNull(uri);
-        this.parameters = requireNonNull(parameters);
-    }
+        Validate.notNull(uri, "uri is null");
+        Validate.notNull(parameters, "parameters are null");
+
+        this.uri = uri;
+        this.name = StringUtils.emptyToNull(parameters.get(NAME_KEY));
+        this.group = StringUtils.emptyToNull(parameters.get(GROUP_KEY));
+        this.parameters = new HashMap<>(parameters);
+    }
+
+    /**
+     * Constructor.
+     * <p>
+     * For empty <code>name</code> and <code>group</code> a fallback to 
<code>parameters</code> is provided.
+     *
+     * @param name       optional name of the named URI
+     * @param group      optional group of the named URI
+     * @param uri        URI
+     * @param parameters map of parameters
+     */
 
     public NamedUri(String name, String group, URI uri, Map<String, String> 
parameters) {
-        this.name = emptyToNull(name);
-        this.group = emptyToNull(group);
-        this.uri = requireNonNull(uri);
-        this.parameters = requireNonNull(parameters);
+        Validate.notNull(uri, "uri is null");
+        Validate.notNull(parameters, "parameters are null");
+
+        this.uri = uri;
+        this.name = StringUtils.firstNonEmpty(name, parameters.get(NAME_KEY));
+        this.group = StringUtils.firstNonEmpty(group, 
parameters.get(GROUP_KEY));
+        this.parameters = new HashMap<>(parameters);
     }
 
     public String getName() {
@@ -66,7 +97,7 @@ public class NamedUri {
     }
 
     public String getNameOrElse(String def) {
-        return isEmpty(name) ? def : name;
+        return StringUtils.isEmpty(name) ? def : name;
     }
 
     public String getGroup() {
@@ -74,7 +105,7 @@ public class NamedUri {
     }
 
     public String getGroupOrElse(String def) {
-        return isEmpty(group) ? def : group;
+        return StringUtils.isEmpty(group) ? def : group;
     }
 
     public URI getUri() {
@@ -94,11 +125,11 @@ public class NamedUri {
     }
 
     public boolean hasName() {
-        return !isEmpty(this.name);
+        return !StringUtils.isEmpty(this.name);
     }
 
     public boolean hasGroup() {
-        return !isEmpty(this.group);
+        return !StringUtils.isEmpty(this.group);
     }
 
     public File getFile() {
@@ -106,20 +137,20 @@ public class NamedUri {
     }
 
     public String getMimeType() {
-        return getParameter(NamedUri.MIMETYPE);
+        return getParameter(NamedUri.MIMETYPE_KEY);
     }
 
     public String getMimeTypeOrElse(String def) {
-        return getParameterOrElse(NamedUri.MIMETYPE, def);
+        return getParameterOrElse(NamedUri.MIMETYPE_KEY, def);
     }
 
     public Charset getCharset() {
-        final String charsetName = getParameter(NamedUri.CHARSET);
+        final String charsetName = getParameter(NamedUri.CHARSET_KEY);
         return Charset.forName(charsetName);
     }
 
     public Charset getCharsetOrElse(Charset def) {
-        final String charsetName = getParameter(NamedUri.CHARSET);
+        final String charsetName = getParameter(NamedUri.CHARSET_KEY);
         return StringUtils.isEmpty(charsetName) ? def : 
Charset.forName(charsetName);
     }
 
diff --git 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/PropertiesTransformerTest.java
 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/PropertiesTransformerTest.java
index de0c483..5a116e0 100644
--- 
a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/PropertiesTransformerTest.java
+++ 
b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/util/PropertiesTransformerTest.java
@@ -18,8 +18,6 @@ package org.apache.freemarker.generator.util;
 
 import org.junit.Test;
 
-import java.util.HashMap;
-import java.util.Map;
 import java.util.Properties;
 
 import static 
org.apache.freemarker.generator.base.FreeMarkerConstants.Configuration.TOOLS_PREFIX;
@@ -29,8 +27,6 @@ import static org.junit.Assert.assertEquals;
 
 public class PropertiesTransformerTest {
 
-    private final Map<String, Object> settings = new HashMap<>();
-
     @Test
     public void shouldFilterKeyPrefix() {
         final Properties properties = filterKeyPrefix(properties(), 
TOOLS_PREFIX);

Reply via email to