@Override
      public int hashCode(@Nullable Object object) {
        if (object instanceof IProperty) {
          String key = ((IProperty)object).getKey();
          return key == null ? 0 : key.hashCode();
        }
        else {
          return 0;
        }
      }
@Override
      public int hashCode(@Nullable Object object)