You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Not.java 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.data.util.filter;
  5. import com.vaadin.data.Container.Filter;
  6. import com.vaadin.data.Item;
  7. /**
  8. * Negating filter that accepts the items rejected by another filter.
  9. *
  10. * This filter directly supports in-memory filtering when the negated filter
  11. * does so.
  12. *
  13. * @since 6.6
  14. */
  15. public final class Not implements Filter {
  16. private final Filter filter;
  17. /**
  18. * Constructs a filter that negates a filter.
  19. *
  20. * @param filter
  21. * {@link Filter} to negate, not-null
  22. */
  23. public Not(Filter filter) {
  24. this.filter = filter;
  25. }
  26. /**
  27. * Returns the negated filter.
  28. *
  29. * @return Filter
  30. */
  31. public Filter getFilter() {
  32. return filter;
  33. }
  34. @Override
  35. public boolean passesFilter(Object itemId, Item item)
  36. throws UnsupportedOperationException {
  37. return !filter.passesFilter(itemId, item);
  38. }
  39. /**
  40. * Returns true if a change in the named property may affect the filtering
  41. * result. Return value is the same as {@link #appliesToProperty(Object)}
  42. * for the negated filter.
  43. *
  44. * @return boolean
  45. */
  46. @Override
  47. public boolean appliesToProperty(Object propertyId) {
  48. return filter.appliesToProperty(propertyId);
  49. }
  50. @Override
  51. public boolean equals(Object obj) {
  52. if (obj == null || !getClass().equals(obj.getClass())) {
  53. return false;
  54. }
  55. return filter.equals(((Not) obj).getFilter());
  56. }
  57. @Override
  58. public int hashCode() {
  59. return filter.hashCode();
  60. }
  61. }