/** * Constructs an instance initialised with the supplied settings. * * @param settings the settings to configure the instance with. */ public ExternalCacheSettingsBuilder(ExternalCacheSettings settings) { this.defaultTtl = requireNonNull(settings.getDefaultTtl()); this.entryCountHint = requireNonNull(settings.getEntryCountHint()); this.dataChangeRateHint = requireNonNull(settings.getDataChangeRateHint()); this.entryGrowthRateHint = requireNonNull(settings.getEntryGrowthRateHint()); }
/** * Returns a new {@link ExternalCacheSettings} instance where the current settings * are overridden with settings specified in <tt>overrides</tt>. * * @param overrides contains the settings to override * @return a new {@link ExternalCacheSettings} instance with the <tt>overrides</tt> settings applied. */ public ExternalCacheSettings override(ExternalCacheSettings overrides) { return new ExternalCacheSettings( ifPresent(overrides.getDefaultTtl(), getDefaultTtl()), ifPresent(overrides.getEntryCountHint(), getEntryCountHint()), ifPresent(overrides.getDataChangeRateHint(), getDataChangeRateHint()), ifPresent(overrides.getEntryGrowthRateHint(), getEntryGrowthRateHint())); }