Java tutorial
/** * 09/feb/2011 * * Copyright (c) 2010 Alten Italia, All Rights Reserved. * * This software is the confidential and proprietary information of * Alten Italia ("Confidential Information"). * You shall not disclose such Confidential Information and shall use it * only in accordance with the terms of the license agreement you entered * into with Alten Italia. * * Alten Italia - MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY * OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, * OR NON-INFRINGEMENT. ALTEN ITALIA SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED * BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR * ITS DERIVATIVES. */ package com.sample.common.util; import static org.springframework.util.ReflectionUtils.findMethod; import static org.springframework.util.StringUtils.capitalize; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.Calendar; import org.apache.commons.lang3.StringUtils; /** * @author Damiano Masillo * */ public class CommonsUtil { private static final String PREFISSO_CANALE = "64"; /** * Metodo di utilita' per ricavare da un multichannelId un abi * * @param multichannelId * @return la stringa rappresentante l'abi * @throws IllegalArgumentException * se la stringa del multichannel non e' valida */ public static String getAbi(String multichannelId) { if (multichannelId == null || multichannelId.length() != 17) throw new IllegalArgumentException("Illegal multichannelID string lenght"); return multichannelId.substring(0, 5); } /** * Metodo di utilita' per ricavare da un multichannelId un bt * * @param multichannelId * @return la stringa rappresentante il bt * @throws IllegalArgumentException * se la stringa del multichannel non e' valida */ public static String getBt(String multichannelId) { if (multichannelId == null || multichannelId.length() != 17) throw new IllegalArgumentException("Illegal multichannelID string lenght"); return multichannelId.substring(9, multichannelId.length()); } /** * Metodo di utilita per la composizione di un multichannelId a partire da un abi, un canale e un bt * * @param abi * @param canale * @param userid * @return multichannelId * @throws IllegalArgumentException * se l'abi, il canale o il bt non sono validi */ public static String getMultichannelId(String abi, String canale, String userid) { if (abi == null || abi.length() > 5) throw new IllegalArgumentException("Stringa ABI troppo lunga"); if (canale == null || canale.length() > 2) throw new IllegalArgumentException("Stringa canale troppo lunga"); if (userid == null || userid.length() > 8) throw new IllegalArgumentException("Stringa userid troppo lunga"); StringBuffer buf = new StringBuffer(17); buf.append(StringUtils.leftPad(abi, 5, "0")); buf.append(PREFISSO_CANALE); buf.append(StringUtils.leftPad(canale, 2, "0")); buf.append(StringUtils.leftPad(userid, 8, "0")); return buf.toString(); } /** * Restituisce il codice filiale a partire dal codice rapporto host * * * @param codiceRapportoHost * @return */ public static String getCodiceFiliale(String codiceRapportoHost) { if (codiceRapportoHost == null || codiceRapportoHost.length() != 17) { throw new IllegalArgumentException("Illegal codiceRapportoHost string lenght"); } return codiceRapportoHost.substring(0, 5); } /** * Restituisce la categoria a partire dal codice rapporto host * * @param codiceRapportoHost * @return */ public static String getCategoria(String codiceRapportoHost) { if (codiceRapportoHost == null || codiceRapportoHost.length() != 17) { throw new IllegalArgumentException("Illegal codiceRapportoHost string lenght"); } return codiceRapportoHost.substring(5, 9); } /** * Restituisce il numero rapporto a partire dal codice rapporto host * * @param codiceRapportoHost * @return */ public static String getNumeroRapporto(String codiceRapportoHost) { if (codiceRapportoHost == null || codiceRapportoHost.length() != 17) { throw new IllegalArgumentException("Illegal codiceRapportoHost string lenght"); } return codiceRapportoHost.substring(9); } /** * Formatta una data col seguente pattern dd/MM/yyyy HH:MM:SS * * @param calendar * @return data formattata */ public static String formatDate(Calendar calendar) { String stringDate = null; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); if (calendar != null) { stringDate = sdf.format(calendar.getTime()); } return stringDate; } /** * @param multichannelId * @return */ public static String getCodiceCanale(String multichannelId) { if (multichannelId == null || multichannelId.length() != 17) throw new IllegalArgumentException("Illegal multichannelID string lenght"); return multichannelId.substring(7, 9); } /** * Metodo di utilita' per controllare che un'istanza di una classe abbia almeno un campo valorizzato * * @param instance * @return true se l'istanza ha almeno un campo valorizzato, false altrimenti */ public static <T> boolean isFilled(T instance) { boolean isFilled = false; if (instance != null) { Field[] fields = instance.getClass().getDeclaredFields(); for (Field field : fields) { if (field.getType().getCanonicalName().startsWith("java.lang")) { String getterMethodName = "get" + capitalize(field.getName()); Method method = findMethod(instance.getClass(), getterMethodName, new Class[] {}); if (method != null) { try { Object value = method.invoke(instance, new Object[] {}); if (field.getType().getSimpleName().equals("String")) { String valueStr = (String) value; if (value != null && valueStr.trim().length() > 0) { isFilled = true; break; } } else { if (value != null) { isFilled = true; break; } } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } } return isFilled; } /** * * * @param codiceCanale * @param internetChannelPrefix * @return */ public static boolean matchCanale(String codiceCanale, String internetChannelPrefix) { boolean returnValue = false; if (codiceCanale != null && internetChannelPrefix != null) { returnValue = internetChannelPrefix.substring(2).contains(codiceCanale); } return returnValue; } }