@SuppressWarnings("unchecked") @Override @Nonnull public HashCharObjMapFactory<V> withValueEquivalence( @Nonnull Equivalence<? super V> valueEquivalence) { if (valueEquivalence.equals(Equivalence.defaultEquality())) { return (HashCharObjMapFactory<V>) this; } return new WithCustomValueEquivalence<V>(getHashConfig(), getDefaultExpectedSize() , getLowerKeyDomainBound(), getUpperKeyDomainBound(), (Equivalence<V>) valueEquivalence); }
@SuppressWarnings("unchecked") @Override @Nonnull public HashCharObjMapFactory<V> withValueEquivalence( @Nonnull Equivalence<? super V> valueEquivalence) { if (valueEquivalence.equals(Equivalence.defaultEquality())) { return (HashCharObjMapFactory<V>) this; } return new WithCustomValueEquivalence<V>(getHashConfig(), getDefaultExpectedSize() , getLowerKeyDomainBound(), getUpperKeyDomainBound(), (Equivalence<V>) valueEquivalence); }
@SuppressWarnings("unchecked") @Override @Nonnull public HashCharObjMapFactory<V> withValueEquivalence( @Nonnull Equivalence<? super V> valueEquivalence) { if (valueEquivalence.equals(Equivalence.defaultEquality())) return new QHashSeparateKVCharObjMapFactoryImpl<V>(getHashConfig(), getDefaultExpectedSize() , getLowerKeyDomainBound(), getUpperKeyDomainBound()); if (valueEquivalence.equals(this.valueEquivalence)) return (HashCharObjMapFactory<V>) this; return new WithCustomValueEquivalence<V>(getHashConfig(), getDefaultExpectedSize() , getLowerKeyDomainBound(), getUpperKeyDomainBound(), (Equivalence<V>) valueEquivalence); }
@SuppressWarnings("unchecked") @Override @Nonnull public HashCharObjMapFactory<V> withValueEquivalence( @Nonnull Equivalence<? super V> valueEquivalence) { if (valueEquivalence.equals(Equivalence.defaultEquality())) return new QHashSeparateKVCharObjMapFactoryImpl<V>(getHashConfig(), getDefaultExpectedSize() , getLowerKeyDomainBound(), getUpperKeyDomainBound()); if (valueEquivalence.equals(this.valueEquivalence)) return (HashCharObjMapFactory<V>) this; return new WithCustomValueEquivalence<V>(getHashConfig(), getDefaultExpectedSize() , getLowerKeyDomainBound(), getUpperKeyDomainBound(), (Equivalence<V>) valueEquivalence); }
@Override HashCharObjMapFactory<V> qHashLikeThisWith(HashConfig hashConf, int defaultExpectedSize, char lower, char upper) { return new QHashSeparateKVCharObjMapFactoryImpl.WithCustomValueEquivalence<V>( hashConf, defaultExpectedSize, lower, upper, valueEquivalence); } @Override
@Override HashCharObjMapFactory<V> thisWith(HashConfig hashConf, int defaultExpectedSize, char lower, char upper) { return new WithCustomValueEquivalence<V>(hashConf, defaultExpectedSize, lower, upper, valueEquivalence); }
@Override HashCharObjMapFactory<V> qHashLikeThisWith(HashConfig hashConf, int defaultExpectedSize, char lower, char upper) { return new QHashSeparateKVCharObjMapFactoryImpl.WithCustomValueEquivalence<V>( hashConf, defaultExpectedSize, lower, upper, valueEquivalence); } @Override
@Override HashCharObjMapFactory<V> qHashLikeThisWith(HashConfig hashConf, int defaultExpectedSize, char lower, char upper) { return new QHashSeparateKVCharObjMapFactoryImpl.WithCustomValueEquivalence<V>( hashConf, defaultExpectedSize, lower, upper, valueEquivalence); } @Override
@Override HashCharObjMapFactory<V> thisWith(HashConfig hashConf, int defaultExpectedSize, char lower, char upper) { return new WithCustomValueEquivalence<V>(hashConf, defaultExpectedSize, lower, upper, valueEquivalence); }
@Override HashCharObjMapFactory<V> qHashLikeThisWith(HashConfig hashConf, int defaultExpectedSize, char lower, char upper) { return new QHashSeparateKVCharObjMapFactoryImpl.WithCustomValueEquivalence<V>( hashConf, defaultExpectedSize, lower, upper, valueEquivalence); } @Override