Del creador de Jasypt llega ahora la beta de op4j: una librería pensada para hacer felices a los programadores Java.
It is a Java library aimed at improving quality, semantics, cleanness and readability of Java code, especially auxiliary code like data conversion, structure iteration, filtering, mapping
Básicamente, mediante encadenamiento de métodos podremos realizar las típicas tareas “coñazo” del código Java en una sola línea, con un enfoque más declarativo (qué hacer y no cómo hacerlo).
Se entiende mejor con un ejemplo extraído de la documentación: obtener a partir de una lista de cadenas con fechas en formato “dd/MM/yyyy” un conjuto de objetos Calendar que no incluya ni nulos ni fechas futuras.
Antes
Calendar now = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); Set<Calendar> set = new LinkedHashSet<Calendar>(); for (String element : list) { if (element != null) { try { date = dateFormat1.parse(element); } catch (ParseException e) { throw new SomeException(e); } Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(date.getTime()); if (!calendar.after(now)) { set.add(calendar); } } }
Después
Calendar now = Calendar.getInstance(); Set<Calendar> set = Op.on(list).toSet(). map(FnString.toCalendar("dd/MM/yyyy")). removeAllNullOrTrue(FnCalendar.after(now)).get();
No está nada mal. Podéis probarlo y colaborar a su desarrollo ofreciendo feedback a su autor.