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
--- /dev/null
+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