All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebeaninternal.server.core.CacheOptions Maven / Gradle / Ivy

There is a newer version: 15.8.1
Show newest version
package io.ebeaninternal.server.core;

import io.ebean.annotation.Cache;

/**
 * Options for controlling cache behaviour for a given type.
 */
public class CacheOptions {

  /**
   * Instance when no caching is used.
   */
  public static final CacheOptions NO_CACHING = new CacheOptions();

  private final boolean enableBeanCache;
  private final boolean enableQueryCache;
  private final boolean readOnly;
  private final String[] naturalKey;

  /**
   * Construct for no caching.
   */
  private CacheOptions() {
    enableBeanCache = false;
    enableQueryCache = false;
    readOnly = false;
    naturalKey = null;
  }

  /**
   * Construct with cache annotation.
   */
  public CacheOptions(Cache cache, String[] naturalKey) {
    enableBeanCache = cache.enableBeanCache();
    enableQueryCache = cache.enableQueryCache();
    readOnly = cache.readOnly();
    this.naturalKey = naturalKey;
  }

  /**
   * Return true if bean caching is enabled.
   */
  public boolean isEnableBeanCache() {
    return enableBeanCache;
  }

  /**
   * Return true if query caching is enabled.
   */
  public boolean isEnableQueryCache() {
    return enableQueryCache;
  }

  /**
   * Return true if bean cache hits default to read only.
   */
  public boolean isReadOnly() {
    return readOnly;
  }

  /**
   * Return the natural key property name.
   */
  public String[] getNaturalKey() {
    return naturalKey;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy