@Override
  public boolean matches(Object argument) {
    if (argument instanceof PropertyChangeEvent) {
      PropertyChangeEvent event = (PropertyChangeEvent) argument;
      return propertyName.equals(event.getPropertyName())
              && event.getOldValue() != null
              && event.getNewValue() != null
              && event.getOldValue() instanceof Integer
              && event.getNewValue() instanceof Integer
              && oldValue == (Integer) event.getOldValue()
              && newValue == (Integer) event.getNewValue();
    }
    return false;
  }