package org.mxchange.jcoreee.bean.faces;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.security.Principal;
import java.text.MessageFormat;
import java.util.ArrayList;
super();
}
+ /**
+ * A filter for prices
+ * <p>
+ * @param value Actual value to check
+ * @param filter Filter value to check against {@code value}
+ * @param locale Locale
+ * <p>
+ * @return Whether price ({@code value}) is at least {@code filter}
+ *
+ * @see https://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml
+ */
+ @SuppressWarnings ("unchecked")
+ public boolean filterByPrice (final Object value, final Object filter, final Locale locale) {
+ // Get trimmed string or NULL
+ final String filterText = (filter == null) ? null : filter.toString().trim();
+
+ // Is null or empty?
+ if (filterText == null || filterText.isEmpty()) {
+ // Then return TRUE
+ return true;
+ }
+
+ // Is value NULL or not castable?
+ if (value == null) {
+ // Return FALSE
+ return false;
+ } else if (!(value instanceof Comparable)) {
+ // Not castable
+ throw new ClassCastException("value is not instance of Comparable");
+ }
+
+ // Do the cast and compare
+ return ((Comparable<BigDecimal>) value).compareTo(BigDecimal.valueOf(Double.valueOf(filterText))) > 0;
+ }
+
/**
* Determines principal's name or returns null if no principal (security) is
* set.