Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.movies.jsf; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.model.SelectItem; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; /** * * @author Yener */ public class JsfUtil { private static final String EQUALS = "="; private static final String QUESTION = "?"; private static final String AND = "&"; private static final String REDIRECT = "faces-redirect=true"; public static SelectItem[] getSelectItems(List<?> entities, boolean selectOne) { int size = selectOne ? entities.size() + 1 : entities.size(); SelectItem[] items = new SelectItem[size]; int i = 0; if (selectOne) { items[0] = new SelectItem("", "---"); i++; } for (Object x : entities) { items[i++] = new SelectItem(x, x.toString()); } return items; } public static void ensureAddErrorMessage(Exception ex, String defaultMsg) { String msg = ex.getLocalizedMessage(); if (msg != null && msg.length() > 0) { addErrorMessage(msg); } else { addErrorMessage(defaultMsg); } } public static void addErrorMessages(List<String> messages) { messages.stream().forEach((message) -> { addErrorMessage(message); }); } public static void addErrorMessage(String msg) { getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg)); } public static void addSuccessMessage(String msg) { getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg)); } public static FacesContext getFacesContext() { return FacesContext.getCurrentInstance(); } public static ExternalContext getExternalContext() { return getFacesContext().getExternalContext(); } public static String getRequestParameter(String key) { return getExternalContext().getRequestParameterMap().get(key); } public static String getReturnUrl(String adress, String key, String value) { return new StringBuilder().append(adress).append(QUESTION).append(REDIRECT).append(AND).append(key) .append(EQUALS).append(value).toString(); } public static String getReturnUrl(String adress, Map<String, Object> parameterMap) { StringBuilder builder = new StringBuilder().append(adress); if (MapUtils.isEmpty(parameterMap)) { throw new IllegalArgumentException("Parameter map can not be empty!"); } else { Set<Entry<String, Object>> set = parameterMap.entrySet(); set.stream().forEach((entry) -> { builder.append(QUESTION).append(REDIRECT).append(AND).append(entry.getKey()).append(EQUALS) .append(entry.getValue()); }); } return builder.toString(); } public static Object getObjectFromRequestParameter(String requestParameterName, Converter converter, UIComponent component) { String theId = getRequestParameter(requestParameterName); return converter.getAsObject(FacesContext.getCurrentInstance(), component, theId); } public static <T> List<T> arrayToList(T[] arr) { if (arr == null) { return new ArrayList<>(); } return Arrays.asList(arr); } public static <T> Set<T> arrayToSet(T[] arr) { if (arr == null) { return new HashSet<>(); } return new HashSet(Arrays.asList(arr)); } public static Object[] collectionToArray(Collection<?> c) { if (c == null) { return new Object[0]; } return c.toArray(); } public static <T> List<T> setToList(Set<T> set) { return new ArrayList<>(set); } public static String getAsConvertedString(Object object, Converter converter) { return converter.getAsString(FacesContext.getCurrentInstance(), null, object); } public static String getCollectionAsString(Collection<?> collection) { if (CollectionUtils.isEmpty(collection)) { return "(No Items)"; } StringBuilder sb = new StringBuilder(); int i = 0; for (Object item : collection) { if (i > 0) { sb.append("<br />"); } sb.append(item); i++; } return sb.toString(); } public static <T> T findBean(String beanName) { FacesContext context = FacesContext.getCurrentInstance(); return (T) context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class); } }