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}