@Override public void destroy(KeyValueOperations instance, CreationalContext<KeyValueOperations> creationalContext) { if (instance.getMappingContext() instanceof DisposableBean) { try { ((DisposableBean) instance.getMappingContext()).destroy(); instance.destroy(); } catch (Exception e) { throw new IllegalStateException(e); } } super.destroy(instance, creationalContext); }
@Override @SuppressWarnings("unchecked") public <T, ID> EntityInformation<T, ID> getEntityInformation(Class<T> domainClass) { RedisPersistentEntity<T> entity = (RedisPersistentEntity<T>) operations.getMappingContext() .getRequiredPersistentEntity(domainClass); return new MappingRedisEntityInformation<>(entity); } }
@Override protected RepositoryFragments getRepositoryFragments(RepositoryMetadata metadata) { RepositoryFragments fragments = RepositoryFragments.empty(); if (QueryByExampleExecutor.class.isAssignableFrom(metadata.getRepositoryInterface())) { RedisMappingContext mappingContext = (RedisMappingContext) this.operations.getMappingContext(); RedisPersistentEntity<?> persistentEntity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); MappingRedisEntityInformation<?, ?> entityInformation = new MappingRedisEntityInformation<>(persistentEntity); fragments = fragments.append(RepositoryFragment.implemented(QueryByExampleExecutor.class, getTargetRepositoryViaReflection(QueryByExampleRedisExecutor.class, entityInformation, operations))); } return fragments; }
/** * Creates a new {@link KeyValueRepositoryFactory} for the given {@link KeyValueOperations} and * {@link AbstractQueryCreator}-type. * * @param keyValueOperations must not be {@literal null}. * @param queryCreator must not be {@literal null}. * @param repositoryQueryType must not be {@literal null}. * @since 1.1 */ public KeyValueRepositoryFactory(KeyValueOperations keyValueOperations, Class<? extends AbstractQueryCreator<?, ?>> queryCreator, Class<? extends RepositoryQuery> repositoryQueryType) { Assert.notNull(keyValueOperations, "KeyValueOperations must not be null!"); Assert.notNull(queryCreator, "Query creator type must not be null!"); Assert.notNull(repositoryQueryType, "RepositoryQueryType type must not be null!"); this.queryCreator = queryCreator; this.keyValueOperations = keyValueOperations; this.context = keyValueOperations.getMappingContext(); this.repositoryQueryType = repositoryQueryType; }
/** * Creates a new {@link KeyValueRepositoryFactory} for the given {@link KeyValueOperations} and * {@link AbstractQueryCreator}-type. * * @param keyValueOperations must not be {@literal null}. * @param queryCreator must not be {@literal null}. * @param repositoryQueryType must not be {@literal null}. * @since 1.1 */ public KeyValueRepositoryFactory(KeyValueOperations keyValueOperations, Class<? extends AbstractQueryCreator<?, ?>> queryCreator, Class<? extends RepositoryQuery> repositoryQueryType) { Assert.notNull(keyValueOperations, "KeyValueOperations must not be null!"); Assert.notNull(queryCreator, "Query creator type must not be null!"); Assert.notNull(repositoryQueryType, "RepositoryQueryType type must not be null!"); this.queryCreator = queryCreator; this.keyValueOperations = keyValueOperations; this.context = keyValueOperations.getMappingContext(); this.repositoryQueryType = repositoryQueryType; }
/** * Creates a new {@link KeyValueRepositoryFactory} for the given {@link KeyValueOperations} and * {@link AbstractQueryCreator}-type. * * @param keyValueOperations must not be {@literal null}. * @param queryCreator must not be {@literal null}. * @param repositoryQueryType must not be {@literal null}. * @since 1.1 */ public KeyValueRepositoryFactory(KeyValueOperations keyValueOperations, Class<? extends AbstractQueryCreator<?, ?>> queryCreator, Class<? extends RepositoryQuery> repositoryQueryType) { Assert.notNull(keyValueOperations, "KeyValueOperations must not be null!"); Assert.notNull(queryCreator, "Query creator type must not be null!"); Assert.notNull(repositoryQueryType, "RepositoryQueryType type must not be null!"); this.queryCreator = queryCreator; this.keyValueOperations = keyValueOperations; this.context = keyValueOperations.getMappingContext(); this.repositoryQueryType = repositoryQueryType; }
@Override public void destroy(KeyValueOperations instance, CreationalContext<KeyValueOperations> creationalContext) { if (instance.getMappingContext() instanceof DisposableBean) { try { ((DisposableBean) instance.getMappingContext()).destroy(); instance.destroy(); } catch (Exception e) { throw new IllegalStateException(e); } } super.destroy(instance, creationalContext); }
/** * Creates a new {@link VaultPartTreeQuery} for the given {@link QueryMethod}, * {@link EvaluationContextProvider}, {@link KeyValueOperations} and query creator * type. * * @param queryMethod must not be {@literal null}. * @param evaluationContextProvider must not be {@literal null}. * @param keyValueOperations must not be {@literal null}. * @param queryCreator must not be {@literal null}. */ @SuppressWarnings("unchecked") public VaultPartTreeQuery(QueryMethod queryMethod, QueryMethodEvaluationContextProvider evaluationContextProvider, KeyValueOperations keyValueOperations, Class<? extends AbstractQueryCreator<?, ?>> queryCreator) { super(queryMethod, evaluationContextProvider, keyValueOperations, new VaultQueryCreatorFactory( (MappingContext) keyValueOperations.getMappingContext())); }
@Override public void destroy(KeyValueOperations instance, CreationalContext<KeyValueOperations> creationalContext) { if (instance.getMappingContext() instanceof DisposableBean) { try { ((DisposableBean) instance.getMappingContext()).destroy(); instance.destroy(); } catch (Exception e) { throw new IllegalStateException(e); } } super.destroy(instance, creationalContext); }
@Override public <T, ID> EntityInformation<T, ID> getEntityInformation(Class<T> domainClass) { PersistentEntity<T, ?> entity = (PersistentEntity<T, ?>) keyValueOperations.getMappingContext() .getPersistentEntity(domainClass); Assert.notNull(entity, "Entity must not be 'null'."); return new HazelcastEntityInformation<>(entity); } }
@Override @SuppressWarnings("unchecked") public <T, ID> EntityInformation<T, ID> getEntityInformation(Class<T> domainClass) { RedisPersistentEntity<T> entity = (RedisPersistentEntity<T>) operations.getMappingContext() .getRequiredPersistentEntity(domainClass); return new MappingRedisEntityInformation<>(entity); } }
@Override @SuppressWarnings("unchecked") public <T, ID> EntityInformation<T, ID> getEntityInformation(Class<T> domainClass) { RedisPersistentEntity<T> entity = (RedisPersistentEntity<T>) operations.getMappingContext() .getRequiredPersistentEntity(domainClass); return new MappingRedisEntityInformation<>(entity); } }
@Override @SuppressWarnings("unchecked") public <T, ID> EntityInformation<T, ID> getEntityInformation(Class<T> domainClass) { VaultPersistentEntity<T> entity = (VaultPersistentEntity<T>) operations .getMappingContext().getPersistentEntity(domainClass); return new MappingVaultEntityInformation<>(entity); } }
@Override protected RepositoryFragments getRepositoryFragments(RepositoryMetadata metadata) { RepositoryFragments fragments = RepositoryFragments.empty(); if (QueryByExampleExecutor.class.isAssignableFrom(metadata.getRepositoryInterface())) { RedisMappingContext mappingContext = (RedisMappingContext) this.operations.getMappingContext(); RedisPersistentEntity<?> persistentEntity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); MappingRedisEntityInformation<?, ?> entityInformation = new MappingRedisEntityInformation<>(persistentEntity); fragments = fragments.append(RepositoryFragment.implemented(QueryByExampleExecutor.class, getTargetRepositoryViaReflection(QueryByExampleRedisExecutor.class, entityInformation, operations))); } return fragments; }
@Override protected RepositoryFragments getRepositoryFragments(RepositoryMetadata metadata) { RepositoryFragments fragments = RepositoryFragments.empty(); if (QueryByExampleExecutor.class.isAssignableFrom(metadata.getRepositoryInterface())) { RedisMappingContext mappingContext = (RedisMappingContext) this.operations.getMappingContext(); RedisPersistentEntity<?> persistentEntity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); MappingRedisEntityInformation<?, ?> entityInformation = new MappingRedisEntityInformation<>(persistentEntity); fragments = fragments.append(RepositoryFragment.implemented(QueryByExampleExecutor.class, getTargetRepositoryViaReflection(QueryByExampleRedisExecutor.class, entityInformation, operations))); } return fragments; }