Class DefaultAugmentationService<P extends Augmentation>

java.lang.Object
com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
com.broadleafcommerce.metadata.core.service.DefaultAugmentationService<P>
All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>, AugmentationService<P>

public class DefaultAugmentationService<P extends Augmentation> extends com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P> implements AugmentationService<P>
The default service implementation used for doing CRUD on `Augmentation`.
Author:
Nick Crum (ncrum)
  • Constructor Details

    • DefaultAugmentationService

      public DefaultAugmentationService(AugmentationRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.CrudEntityHelper helper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, AugmentationModifiedEventProducer augmentationModifiedEventProducer)
  • Method Details

    • findAugmentationsByContainerKey

      public org.springframework.data.domain.Page<P> findAugmentationsByContainerKey(String containerKey, @Nullable org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      findAugmentationsByContainerKey in interface AugmentationService<P extends Augmentation>
    • findAllAugmentationsByContainerKeyIgnoringCase

      public List<P> findAllAugmentationsByContainerKeyIgnoringCase(String containerKey, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      findAllAugmentationsByContainerKeyIgnoringCase in interface AugmentationService<P extends Augmentation>
    • findAugmentationsByContainerKeyLike

      public org.springframework.data.domain.Page<P> findAugmentationsByContainerKeyLike(String containerKey, @Nullable org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      findAugmentationsByContainerKeyLike in interface AugmentationService<P extends Augmentation>
    • readAugmentationByTargetKeyAndJsonPayloadContainsAndChangeType

      public Optional<P> readAugmentationByTargetKeyAndJsonPayloadContainsAndChangeType(String targetKey, String jsonPayload, String changeType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      readAugmentationByTargetKeyAndJsonPayloadContainsAndChangeType in interface AugmentationService<P extends Augmentation>
    • readAugmentationByTargetKeyAndChangeType

      public Optional<P> readAugmentationByTargetKeyAndChangeType(String targetKey, String changeType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      readAugmentationByTargetKeyAndChangeType in interface AugmentationService<P extends Augmentation>
    • create

      @CacheEvict(cacheNames="metadataComponentCacheByComponentIdTenantIdApplicationId", keyGenerator="metadataAugmentationCacheKeyGenerator") public P create(@NonNull P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      create in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends Augmentation>
      Overrides:
      create in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends Augmentation>
    • replace

      @CacheEvict(cacheNames="metadataComponentCacheByComponentIdTenantIdApplicationId", keyGenerator="metadataAugmentationCacheKeyGenerator") public P replace(@NonNull String id, @NonNull P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      replace in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends Augmentation>
      Overrides:
      replace in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends Augmentation>
    • delete

      @CacheEvict(cacheNames="metadataComponentCacheByComponentIdTenantIdApplicationId", keyGenerator="metadataAugmentationCacheKeyGenerator") public void delete(@NonNull Augmentation augmentation, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      delete in interface AugmentationService<P extends Augmentation>
    • sendAugmentationModifiedEvent

      protected void sendAugmentationModifiedEvent(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, P augmentation)
    • evictRelatedComponentsCache

      protected void evictRelatedComponentsCache(P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • getCacheManager

      protected org.springframework.cache.CacheManager getCacheManager()
    • setCacheManager

      @Autowired(required=false) public void setCacheManager(org.springframework.cache.CacheManager cacheManager)
    • getComponentRegistry

      protected com.broadleafcommerce.metadata.dsl.registry.ComponentRegistry<?> getComponentRegistry()
    • setComponentRegistry

      @Autowired public void setComponentRegistry(com.broadleafcommerce.metadata.dsl.registry.ComponentRegistry<?> componentRegistry)
    • setKeyGenerator

      @Autowired(required=false) @Qualifier("metadataAugmentationCacheKeyGenerator") public void setKeyGenerator(org.springframework.cache.interceptor.KeyGenerator keyGenerator)
    • getKeyGenerator

      protected org.springframework.cache.interceptor.KeyGenerator getKeyGenerator()
    • getRepository

      @NonNull protected AugmentationRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()
      Overrides:
      getRepository in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends Augmentation>
    • getTypeFactory

      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
    • getAugmentationModifiedEventProducer

      protected AugmentationModifiedEventProducer getAugmentationModifiedEventProducer()