Updating the csd property generator to have better names (they no longer all 
start with 'blur') and the installer will no longer be presented with every 
property during install.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/8200840d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/8200840d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/8200840d

Branch: refs/heads/master
Commit: 8200840db22d0a20e1bac507dce6490006fe667c
Parents: 7a63b8a
Author: Aaron McCurry <amccu...@gmail.com>
Authored: Fri Jul 31 14:04:20 2015 -0400
Committer: Aaron McCurry <amccu...@gmail.com>
Committed: Fri Jul 31 14:04:20 2015 -0400

----------------------------------------------------------------------
 .../apache/blur/doc/JsonPropertyFormatter.java  | 54 +++++++++++++++-----
 1 file changed, 42 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/8200840d/blur-util/src/main/java/org/apache/blur/doc/JsonPropertyFormatter.java
----------------------------------------------------------------------
diff --git 
a/blur-util/src/main/java/org/apache/blur/doc/JsonPropertyFormatter.java 
b/blur-util/src/main/java/org/apache/blur/doc/JsonPropertyFormatter.java
index 395bc65..b0cee3c 100644
--- a/blur-util/src/main/java/org/apache/blur/doc/JsonPropertyFormatter.java
+++ b/blur-util/src/main/java/org/apache/blur/doc/JsonPropertyFormatter.java
@@ -17,27 +17,57 @@
 package org.apache.blur.doc;
 
 import org.apache.blur.doc.BlurPropertyParser.BlurProp;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import com.google.common.base.Splitter;
 
 public class JsonPropertyFormatter {
 
+  private static final String BLUR = "blur";
+  private static final String DEFAULT = "default";
+  private static final String TYPE = "type";
+  private static final String CONFIGURABLE_IN_WIZARD = "configurableInWizard";
+  private static final String REQUIRED = "required";
+  private static final String CONFIG_NAME = "configName";
+  private static final String DESCRIPTION = "description";
+  private static final String LABEL = "label";
+  private static final String NAME = "name";
+
   public String separator() {
     return ",";
   }
 
   public String format(BlurProp prop) {
-    return "    {\n" +
-        "      \"name\":\"" + prop.getName().replace(".", "_") + "\",\n" +
-        "      \"label\":\"" + prop.getName().replace(".", " ") + "\",\n" +
-        "      \"description\": \"" + escape(prop.getDescription()) + "\",\n" +
-        "      \"configName\":\"" + prop.getName() + "\",\n" +
-        "      \"required\":\"" + prop.isRequired() + "\",\n" +
-        "      \"type\":\"" + prop.getType() + "\",\n" +
-        "      \"default\":\"" + prop.getDefaultVal() + "\",\n" +
-        "      \"configurableInWizard\":true\n" +
-        "    }\n";
+    JSONObject jsonObject = new JSONObject();
+    try {
+      jsonObject.put(NAME, prop.getName().replace(".", "_"));
+      jsonObject.put(LABEL, pretty(prop.getName()));
+      jsonObject.put(DESCRIPTION, prop.getDescription());
+      jsonObject.put(CONFIG_NAME, prop.getName());
+      jsonObject.put(REQUIRED, prop.isRequired());
+      jsonObject.put(CONFIGURABLE_IN_WIZARD, prop.isRequired());
+      jsonObject.put(TYPE, prop.getType());
+      jsonObject.put(DEFAULT, prop.getDefaultVal());
+      return jsonObject.toString(1);
+    } catch (JSONException e) {
+      throw new RuntimeException(e);
+    }
   }
 
-  private String escape(String value) {
-    return value.replace("\"", "'");
+  private String pretty(String s) {
+    Splitter splitter = Splitter.on('.');
+    StringBuilder builder = new StringBuilder();
+    for (String split : splitter.split(s)) {
+      if (builder.length() == 0 && split.equals(BLUR)) {
+        // skip
+      } else {
+        if (builder.length() != 0) {
+          builder.append(' ');
+        }
+        builder.append(split.substring(0, 
1).toUpperCase()).append(split.substring(1));
+      }
+    }
+    return builder.toString();
   }
 }

Reply via email to