Moves UI convenience methods to UiUtils class
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Fri, 31 May 2013 14:12:55 +0000 (10:12 -0400)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Fri, 31 May 2013 14:12:55 +0000 (10:12 -0400)
Object exposed to JSF pages as 'pzui'

src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseDataObject.java
src/main/java/com/indexdata/mkjsf/utils/UiUtils.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/utils/Utils.java

index 572be9a..535f859 100644 (file)
@@ -51,38 +51,7 @@ public class ResponseDataObject implements Serializable {
   public List<ResponseDataObject> getElements (String name) {\r
     return elements.get(name);\r
   }\r
-  \r
-  public List<ResponseDataObject> getElements(String name, int maxElements) {\r
-    if (getElements(name)!=null) {\r
-      int size = getElements(name).size();\r
-      if (size>0) {\r
-        return ((ArrayList<ResponseDataObject>) getElements(name)).subList(0, Math.min(maxElements,size));        \r
-      } \r
-    }   \r
-    return getElements(name);\r
-  }\r
-  \r
-  public List<ResponseDataObject> getElements(String name, int maxElements, int maxTotalValueLength) {\r
-    if (getElements(name)!=null) {\r
-      int size = getElements(name).size();\r
-      if (size>0) {\r
-        List<ResponseDataObject> maxElementsList = ((ArrayList<ResponseDataObject>) getElements(name)).subList(0, Math.min(maxElements,size));\r
-        int i = 0;\r
-        int totalLength = 0;\r
-        for (ResponseDataObject element : maxElementsList) {\r
-          totalLength += element.getValue().length(); \r
-          i++;\r
-          if (totalLength>maxTotalValueLength) {\r
-            break;\r
-          } \r
-        }\r
-        return maxElementsList.subList(0, i);\r
-      } \r
-    }   \r
-    return getElements(name);\r
-  }\r
-\r
-  \r
+    \r
   public ResponseDataObject getOneElement (String name) {\r
     if (elements.get(name) != null) {\r
       return elements.get(name).get(0);\r
diff --git a/src/main/java/com/indexdata/mkjsf/utils/UiUtils.java b/src/main/java/com/indexdata/mkjsf/utils/UiUtils.java
new file mode 100644 (file)
index 0000000..d6ffe2c
--- /dev/null
@@ -0,0 +1,95 @@
+package com.indexdata.mkjsf.utils;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import javax.enterprise.context.ApplicationScoped;\r
+import javax.inject.Named;\r
+\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
+\r
+@Named("pzui")\r
+@ApplicationScoped\r
+public class UiUtils {\r
+\r
+  /**\r
+   * Concatenates a list of strings\r
+   * @param strings\r
+   * @return\r
+   */\r
+  public static String concat(String... strings) {\r
+    StringBuilder concatenated = new StringBuilder("");\r
+    for (String string : strings) {\r
+      concatenated.append(string);\r
+    }\r
+    return concatenated.toString();\r
+  }\r
+  \r
+  public static String concatMaxLength(int maxTotalLength, String... strings) {\r
+    String concatenated = concat(strings);\r
+    return maxLength(concatenated,maxTotalLength);\r
+  }\r
+  \r
+  public static String maxLength (String string, int maxLength) {\r
+    if (string == null || string.length()<=maxLength) {\r
+      return string;\r
+    } else {\r
+      return string.substring(0,maxLength);\r
+    }\r
+  }\r
+  \r
+  public static String maxLengthMoreLabel (String string, int maxLength, String moreLabel) {\r
+    if (string == null || string.length()<=maxLength) {\r
+      return string;\r
+    } else {\r
+      String maxString = maxLength(string,maxLength);\r
+      if (string.length()>maxString.length()) {\r
+        maxString += moreLabel;\r
+      }\r
+      return maxString;\r
+    }\r
+  }\r
+    \r
+  /**\r
+   * Encloses a string with quotation marks\r
+   * @param string\r
+   * @return\r
+   */\r
+  public static String quotes(String string) {\r
+    return "\"" + string + "\"";\r
+  }\r
+  \r
+  public static List<ResponseDataObject> getMaxNumElements(ResponseDataObject container, String elementName, int maxElements) {\r
+    if (container.getElements(elementName)!=null) {\r
+      int elementCount = container.getElements(elementName).size();\r
+      if (elementCount>0) {\r
+        return ((ArrayList<ResponseDataObject>) container.getElements(elementName)).subList(0, Math.min(maxElements,elementCount));        \r
+      } \r
+    }   \r
+    return container.getElements(elementName);\r
+  }\r
+  \r
+  public List<ResponseDataObject> getMaxElements(ResponseDataObject container, String elementName, int maxElements, int maxTotalValueLength, boolean hardLimit) {\r
+    List<ResponseDataObject> maxNumList = getMaxNumElements(container,elementName,maxElements);\r
+    if (maxNumList!=null) {\r
+      int elementCount = maxNumList.size();\r
+      if (elementCount>0) {\r
+        int i = 0;\r
+        int totalLength = 0;\r
+        for (ResponseDataObject element : maxNumList) {\r
+          totalLength += element.getValue().length();           \r
+          if (totalLength>maxTotalValueLength) {\r
+            if (!hardLimit) {\r
+              i++;\r
+            }\r
+            break;\r
+          } else {\r
+            i++;\r
+          }\r
+        }\r
+        return maxNumList.subList(0, i);\r
+      }       \r
+    }  \r
+    return maxNumList;    \r
+  }\r
+}\r
index 3d57494..5b8a696 100644 (file)
@@ -3,8 +3,6 @@ package com.indexdata.mkjsf.utils;
 import javax.enterprise.context.ApplicationScoped;\r
 import javax.inject.Named;\r
 \r
-@Named("utils")\r
-@ApplicationScoped\r
 public class Utils {\r
   \r
   public static String nl = System.getProperty("line.separator");  \r
@@ -27,11 +25,4 @@ public class Utils {
     }\r
   }\r
   \r
-  public static String concat(String... strings) {\r
-    StringBuilder concatenated = new StringBuilder("");\r
-    for (String string : strings) {\r
-      concatenated.append(string);\r
-    }\r
-    return concatenated.toString();\r
-  }\r
 }\r