001package io.ebeanservice.docstore.api.support;
002
003import io.ebeaninternal.server.core.PersistRequestBean;
004import io.ebeanservice.docstore.api.DocStoreUpdates;
005
006/**
007 * Checks if a persist request means an embedded/nested object in another document needs updating.
008 * <p>
009 * This has specific properties to check (so not all properties invalidate).
010 */
011public final class DocStoreEmbeddedInvalidationProperties extends DocStoreEmbeddedInvalidation {
012
013  /**
014   * Properties that trigger invalidation.
015   */
016  private final int[] properties;
017
018  public DocStoreEmbeddedInvalidationProperties(String queueId, String path, int[] properties) {
019    super(queueId, path);
020    this.properties = properties;
021  }
022
023  @Override
024  public void embeddedInvalidate(PersistRequestBean<?> request, DocStoreUpdates docStoreUpdates) {
025    if (request.hasDirtyProperty(properties)) {
026      docStoreUpdates.addNested(queueId, path, request.getBeanId());
027    }
028  }
029
030}