Skip to content

Commit 308b1b4

Browse files
committed
Polishing.
Add missing generics. Inline superfluous methods. See #1384
1 parent b399c0a commit 308b1b4

File tree

4 files changed

+21
-60
lines changed

4 files changed

+21
-60
lines changed

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ private <T> Class<T> transformClassToBeanClassLoaderClass(Class<T> entity) {
283283
}
284284

285285
@Override
286+
@SuppressWarnings("unchecked")
286287
public <R> R project(EntityProjection<R, ?> projection, Row row) {
287288

288289
if (!projection.isProjection()) {
@@ -665,7 +666,7 @@ private void writeWhereFromObject(Object source, Where sink, CassandraPersistent
665666
? getMappingContext().getRequiredPersistentEntity(compositeIdProperty)
666667
: entity;
667668

668-
writeWhere(MapId.class.cast(id), sink, whereEntity);
669+
writeWhere((MapId) id, sink, whereEntity);
669670
return;
670671
}
671672

@@ -725,18 +726,6 @@ private void writeWhere(MapId id, Where sink, CassandraPersistentEntity<?> entit
725726
}
726727
}
727728

728-
private void writeWhere(ConvertingPropertyAccessor<?> accessor, Where sink, CassandraPersistentEntity<?> entity) {
729-
730-
Assert.isTrue(entity.isCompositePrimaryKey(),
731-
() -> String.format("Entity [%s] is not a composite primary key", entity.getName()));
732-
733-
for (CassandraPersistentProperty property : entity) {
734-
TypeCodec<Object> codec = getCodec(property);
735-
Object value = accessor.getProperty(property, codec.getJavaType().getRawType());
736-
sink.put(property.getRequiredColumnName(), value);
737-
}
738-
}
739-
740729
private void writeTupleValue(ConvertingPropertyAccessor<?> propertyAccessor, TupleValue tupleValue,
741730
CassandraPersistentEntity<?> entity) {
742731

@@ -863,7 +852,7 @@ private Class<?> getTargetType(CassandraPersistentProperty property) {
863852
*/
864853
@Nullable
865854
@SuppressWarnings("unchecked")
866-
private <T> T getWriteValue(CassandraPersistentProperty property, ConvertingPropertyAccessor propertyAccessor) {
855+
private <T> T getWriteValue(CassandraPersistentProperty property, ConvertingPropertyAccessor<?> propertyAccessor) {
867856

868857
ColumnType cassandraTypeDescriptor = cassandraTypeResolver.resolve(property);
869858

@@ -914,7 +903,7 @@ private Object getWriteValue(@Nullable Object value, ColumnType columnType) {
914903
return writeMapInternal((Map<Object, Object>) value, columnType);
915904
}
916905

917-
TypeInformation<?> type = TypeInformation.of((Class) value.getClass());
906+
TypeInformation<?> type = TypeInformation.of((Class<?>) value.getClass());
918907
TypeInformation<?> actualType = type.getRequiredActualType();
919908
BasicCassandraPersistentEntity<?> entity = getMappingContext().getPersistentEntity(actualType.getType());
920909

@@ -989,7 +978,6 @@ private Object writeMapInternal(Map<Object, Object> source, ColumnType type) {
989978
* @param requestedTargetType must not be {@literal null}.
990979
* @see org.springframework.data.cassandra.core.mapping.CassandraType
991980
*/
992-
@SuppressWarnings("unchecked")
993981
@Nullable
994982
private Object getPotentiallyConvertedSimpleValue(@Nullable Object value, @Nullable Class<?> requestedTargetType) {
995983

@@ -1237,7 +1225,7 @@ public <T> T getParameterValue(Parameter<T, CassandraPersistentProperty> paramet
12371225
* Extension of {@link SpELExpressionParameterValueProvider} to recursively trigger value conversion on the raw
12381226
* resolved SpEL value.
12391227
*/
1240-
private class ConverterAwareSpELExpressionParameterValueProvider
1228+
private static class ConverterAwareSpELExpressionParameterValueProvider
12411229
extends SpELExpressionParameterValueProvider<CassandraPersistentProperty> {
12421230

12431231
private final ConversionContext context;
@@ -1450,16 +1438,8 @@ private CassandraPersistentProperty getPersistentProperty(String name, TypeInfor
14501438
}
14511439
}
14521440

1453-
private static class PropertyTranslatingPropertyAccessor<T> implements PersistentPropertyAccessor<T> {
1454-
1455-
private final PersistentPropertyAccessor<T> delegate;
1456-
private final PersistentPropertyTranslator propertyTranslator;
1457-
1458-
private PropertyTranslatingPropertyAccessor(PersistentPropertyAccessor<T> delegate,
1459-
PersistentPropertyTranslator propertyTranslator) {
1460-
this.delegate = delegate;
1461-
this.propertyTranslator = propertyTranslator;
1462-
}
1441+
private record PropertyTranslatingPropertyAccessor<T> (PersistentPropertyAccessor<T> delegate,
1442+
PersistentPropertyTranslator propertyTranslator) implements PersistentPropertyAccessor<T> {
14631443

14641444
static <T> PersistentPropertyAccessor<T> create(PersistentPropertyAccessor<T> delegate,
14651445
PersistentPropertyTranslator propertyTranslator) {
@@ -1549,7 +1529,7 @@ static class MapPersistentPropertyAccessor implements PersistentPropertyAccessor
15491529
Map<String, Object> map = new LinkedHashMap<>();
15501530

15511531
@Override
1552-
public void setProperty(PersistentProperty<?> persistentProperty, Object o) {
1532+
public void setProperty(PersistentProperty<?> persistentProperty, @Nullable Object o) {
15531533
map.put(persistentProperty.getName(), o);
15541534
}
15551535

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/AbstractCassandraQuery.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
import org.springframework.core.convert.converter.Converter;
1919
import org.springframework.data.cassandra.core.CassandraOperations;
20-
import org.springframework.data.cassandra.core.convert.CassandraConverter;
21-
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
2220
import org.springframework.data.cassandra.repository.query.CassandraQueryExecution.CollectionExecution;
2321
import org.springframework.data.cassandra.repository.query.CassandraQueryExecution.ExistsExecution;
2422
import org.springframework.data.cassandra.repository.query.CassandraQueryExecution.ResultProcessingConverter;
@@ -31,7 +29,6 @@
3129
import org.springframework.data.repository.query.RepositoryQuery;
3230
import org.springframework.data.repository.query.ResultProcessor;
3331
import org.springframework.lang.Nullable;
34-
import org.springframework.util.Assert;
3532

3633
import com.datastax.oss.driver.api.core.cql.SimpleStatement;
3734
import com.datastax.oss.driver.api.core.cql.Statement;
@@ -56,7 +53,7 @@ public abstract class AbstractCassandraQuery extends CassandraRepositoryQuerySup
5653
*/
5754
public AbstractCassandraQuery(CassandraQueryMethod queryMethod, CassandraOperations operations) {
5855

59-
super(queryMethod, toMappingContext(operations));
56+
super(queryMethod, operations.getConverter().getMappingContext());
6057

6158
this.operations = operations;
6259
}
@@ -81,7 +78,7 @@ public Object execute(Object[] parameters) {
8178
Statement<?> statement = createQuery(parameterAccessor);
8279

8380
CassandraQueryExecution queryExecution = getExecution(parameterAccessor,
84-
new ResultProcessingConverter(resultProcessor, toMappingContext(getOperations()), getEntityInstantiators()));
81+
new ResultProcessingConverter(resultProcessor, getMappingContext(), getEntityInstantiators()));
8582

8683
Class<?> resultType = resolveResultType(resultProcessor);
8784

@@ -170,14 +167,4 @@ private CassandraQueryExecution getExecutionToWrap(CassandraParameterAccessor pa
170167
*/
171168
protected abstract boolean isModifyingQuery();
172169

173-
private static CassandraConverter toConverter(CassandraOperations operations) {
174-
175-
Assert.notNull(operations, "CassandraOperations must not be null");
176-
177-
return operations.getConverter();
178-
}
179-
180-
private static CassandraMappingContext toMappingContext(CassandraOperations operations) {
181-
return toConverter(operations).getMappingContext();
182-
}
183170
}

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/AbstractReactiveCassandraQuery.java

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
import org.springframework.data.cassandra.ReactiveResultSet;
2323
import org.springframework.data.cassandra.core.CassandraOperations;
2424
import org.springframework.data.cassandra.core.ReactiveCassandraOperations;
25-
import org.springframework.data.cassandra.core.convert.CassandraConverter;
26-
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
2725
import org.springframework.data.cassandra.repository.query.ReactiveCassandraQueryExecution.CollectionExecution;
2826
import org.springframework.data.cassandra.repository.query.ReactiveCassandraQueryExecution.ExistsExecution;
2927
import org.springframework.data.cassandra.repository.query.ReactiveCassandraQueryExecution.ResultProcessingConverter;
@@ -33,7 +31,6 @@
3331
import org.springframework.data.repository.query.ParameterAccessor;
3432
import org.springframework.data.repository.query.RepositoryQuery;
3533
import org.springframework.data.repository.query.ResultProcessor;
36-
import org.springframework.util.Assert;
3734

3835
import com.datastax.oss.driver.api.core.cql.SimpleStatement;
3936

@@ -58,7 +55,7 @@ public abstract class AbstractReactiveCassandraQuery extends CassandraRepository
5855
*/
5956
public AbstractReactiveCassandraQuery(ReactiveCassandraQueryMethod method, ReactiveCassandraOperations operations) {
6057

61-
super(method, getRequiredMappingContext(operations));
58+
super(method, operations.getConverter().getMappingContext());
6259

6360
this.operations = operations;
6461
}
@@ -83,8 +80,8 @@ private Publisher<Object> executeLater(ReactiveCassandraParameterAccessor parame
8380

8481
Mono<SimpleStatement> statement = createQuery(parameterAccessor);
8582
ResultProcessor resultProcessor = getQueryMethod().getResultProcessor().withDynamicProjection(parameterAccessor);
86-
ReactiveCassandraQueryExecution queryExecution = getExecution(parameterAccessor, new ResultProcessingConverter(
87-
resultProcessor, getRequiredMappingContext(getReactiveCassandraOperations()), getEntityInstantiators()));
83+
ReactiveCassandraQueryExecution queryExecution = getExecution(parameterAccessor,
84+
new ResultProcessingConverter(resultProcessor, getMappingContext(), getEntityInstantiators()));
8885

8986
Class<?> resultType = resolveResultType(resultProcessor);
9087

@@ -94,7 +91,7 @@ private Publisher<Object> executeLater(ReactiveCassandraParameterAccessor parame
9491
private Class<?> resolveResultType(ResultProcessor resultProcessor) {
9592

9693
CassandraReturnedType returnedType = new CassandraReturnedType(resultProcessor.getReturnedType(),
97-
getRequiredConverter(getReactiveCassandraOperations()).getCustomConversions());
94+
getReactiveCassandraOperations().getConverter().getCustomConversions());
9895

9996
return returnedType.getResultType();
10097
}
@@ -173,14 +170,4 @@ private ReactiveCassandraQueryExecution getExecutionToWrap(CassandraParameterAcc
173170
*/
174171
protected abstract boolean isModifyingQuery();
175172

176-
private static CassandraConverter getRequiredConverter(ReactiveCassandraOperations operations) {
177-
178-
Assert.notNull(operations, "ReactiveCassandraOperations must not be null");
179-
180-
return operations.getConverter();
181-
}
182-
183-
private static CassandraMappingContext getRequiredMappingContext(ReactiveCassandraOperations operations) {
184-
return getRequiredConverter(operations).getMappingContext();
185-
}
186173
}

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/CassandraRepositoryQuerySupport.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public abstract class CassandraRepositoryQuerySupport implements RepositoryQuery
4949

5050
private final QueryStatementCreator queryStatementCreator;
5151

52+
private final MappingContext<? extends CassandraPersistentEntity<?>, CassandraPersistentProperty> mappingContext;
53+
5254
/**
5355
* Create a new {@link AbstractCassandraQuery} from the given {@link CassandraQueryMethod} and
5456
* {@link CassandraOperations}.
@@ -78,6 +80,7 @@ public CassandraRepositoryQuerySupport(CassandraQueryMethod queryMethod,
7880
this.queryMethod = queryMethod;
7981
this.instantiators = new EntityInstantiators();
8082
this.queryStatementCreator = new QueryStatementCreator(queryMethod, mappingContext);
83+
this.mappingContext = mappingContext;
8184
}
8285

8386
@Override
@@ -93,6 +96,10 @@ protected QueryStatementCreator getQueryStatementCreator() {
9396
return this.queryStatementCreator;
9497
}
9598

99+
protected MappingContext<? extends CassandraPersistentEntity<?>, CassandraPersistentProperty> getMappingContext() {
100+
return mappingContext;
101+
}
102+
96103
class CassandraReturnedType {
97104

98105
private final ReturnedType returnedType;

0 commit comments

Comments
 (0)