Refactor rename methods on SpiExpressionRequest, DeployParser etc

This commit is contained in:
Rob Bygrave
2023-03-24 19:57:21 +13:00
parent 9ff240dc10
commit a68665a37e
26 changed files with 57 additions and 73 deletions
@@ -14,7 +14,7 @@ public interface SpiExpressionRequest {
/**
* Return the DB specific handler for JSON and ARRAY expressions.
*/
DbExpressionHandler getDbPlatformHandler();
DbExpressionHandler platformHandler();
/**
* Parse the logical property name to the deployment name.
@@ -24,12 +24,12 @@ public interface SpiExpressionRequest {
/**
* Return the bean descriptor for the root type.
*/
BeanDescriptor<?> getBeanDescriptor();
BeanDescriptor<?> descriptor();
/**
* Return the associated QueryRequest.
*/
SpiOrmQueryRequest<?> getQueryRequest();
SpiOrmQueryRequest<?> queryRequest();
/**
* Append to the expression sql without any parsing.
@@ -62,12 +62,12 @@ public interface SpiExpressionRequest {
/**
* Return the accumulated expression sql for all expressions in this request.
*/
String getSql();
String sql();
/**
* Return the ordered list of bind values for all expressions in this request.
*/
List<Object> getBindValues();
List<Object> bindValues();
/**
* Increments the parameter index and returns that value.
@@ -417,7 +417,7 @@ public class BeanPropertyAssocMany<T> extends BeanPropertyAssoc<T> implements ST
boolean softDelete = targetDescriptor.isSoftDelete();
boolean needsX2Table = softDelete || extraWhere() != null;
StringBuilder sb = new StringBuilder(50).append("from "); // use from to stop parsing on table name
SpiQuery<?> query = request.getQueryRequest().query();
SpiQuery<?> query = request.queryRequest().query();
if (hasJoinTable()) {
sb.append(query.isAsDraft() ? intersectionDraftTable : intersectionPublishTable);
} else {
@@ -51,7 +51,7 @@ public abstract class DeployParser {
/**
* Return the join includes.
*/
public abstract Set<String> getIncludes();
public abstract Set<String> includes();
public void setEncrypted(boolean encrypted) {
this.encrypted = encrypted;
@@ -37,12 +37,12 @@ public final class DeployPropertyParser extends DeployParser {
/**
* Return the first property found by the parser.
*/
public ElPropertyDeploy getFirstProp() {
public ElPropertyDeploy firstProp() {
return firstProp;
}
@Override
public Set<String> getIncludes() {
public Set<String> includes() {
return includes;
}
@@ -19,7 +19,7 @@ public class DeployPropertyParserMap extends DeployParser {
* Returns null for raw sql queries.
*/
@Override
public Set<String> getIncludes() {
public Set<String> includes() {
return Collections.emptySet();
}
@@ -19,7 +19,7 @@ public final class DeployUpdateParser extends DeployParser {
* Return null as not used for updates.
*/
@Override
public Set<String> getIncludes() {
public Set<String> includes() {
return null;
}
@@ -48,7 +48,7 @@ final class FormulaPropertyPath {
parsed = parsed.replace("${}", "${" + path + "}");
}
this.parsedAggregation = buildFormula(parsed);
this.firstProp = parser.getFirstProp();
this.firstProp = parser.firstProp();
}
private void parseSuffix(String suffix) {
@@ -82,9 +82,9 @@ public final class IntersectionRow {
idIn.addSqlNoAlias(er);
idIn.addBindValues(er);
sb.append(" and not ( ");
sb.append(er.getSql());
sb.append(er.sql());
sb.append(" ) ");
List<Object> bindValues = er.getBindValues();
List<Object> bindValues = er.bindValues();
for (Object bindValue : bindValues) {
bindParams.setParameter(++count, bindValue);
}
@@ -2,11 +2,7 @@ package io.ebeaninternal.server.expression;
import io.ebean.event.BeanQueryRequest;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.ManyWhereJoins;
import io.ebeaninternal.api.NaturalKeyQueryData;
import io.ebeaninternal.api.SpiExpression;
import io.ebeaninternal.api.SpiExpressionRequest;
import io.ebeaninternal.api.SpiExpressionValidation;
import io.ebeaninternal.api.*;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.el.ElPropertyDeploy;
import io.ebeaninternal.server.el.ElPropertyValue;
@@ -102,6 +98,6 @@ abstract class AbstractExpression implements SpiExpression {
}
protected final ElPropertyValue getElProp(SpiExpressionRequest request) {
return request.getBeanDescriptor().elGetValue(propName);
return request.descriptor().elGetValue(propName);
}
}
@@ -68,7 +68,7 @@ final class ArrayContainsExpression extends AbstractExpression {
@Override
public void addSql(SpiExpressionRequest request) {
request.getDbPlatformHandler().arrayContains(request, propName, contains, values);
request.platformHandler().arrayContains(request, propName, contains, values);
}
@Override
@@ -45,7 +45,7 @@ final class ArrayIsEmptyExpression extends AbstractExpression {
@Override
public void addSql(SpiExpressionRequest request) {
request.getDbPlatformHandler().arrayIsEmpty(request, propName, empty);
request.platformHandler().arrayIsEmpty(request, propName, empty);
}
@Override
@@ -48,7 +48,7 @@ final class BitwiseExpression extends AbstractExpression {
@Override
public void addSql(SpiExpressionRequest request) {
// Use DB specific expression handling
request.getDbPlatformHandler().bitwise(request, propName, operator, flags, compare, match);
request.platformHandler().bitwise(request, propName, operator, flags, compare, match);
}
@Override
@@ -67,7 +67,7 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
}
@Override
public DbExpressionHandler getDbPlatformHandler() {
public DbExpressionHandler platformHandler() {
return binder.getDbExpressionHandler();
}
@@ -101,12 +101,12 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
}
@Override
public BeanDescriptor<?> getBeanDescriptor() {
public BeanDescriptor<?> descriptor() {
return beanDescriptor;
}
@Override
public SpiOrmQueryRequest<?> getQueryRequest() {
public SpiOrmQueryRequest<?> queryRequest() {
return queryRequest;
}
@@ -162,17 +162,17 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
}
}
public String getBindLog() {
public String bindLog() {
return bindLog == null ? "" : bindLog.toString();
}
@Override
public String getSql() {
public String sql() {
return sql.toString();
}
@Override
public List<Object> getBindValues() {
public List<Object> bindValues() {
return bindValues;
}
@@ -46,21 +46,16 @@ final class IdExpression extends NonPrepareExpression implements SpiExpression {
@Override
public void addBindValues(SpiExpressionRequest request) {
// 'flatten' EmbeddedId and multiple ID cases
// into an array of the underlying scalar field values
DefaultExpressionRequest r = (DefaultExpressionRequest) request;
Object[] bindIdValues = r.getBeanDescriptor().bindIdValues(value);
for (Object bindIdValue : bindIdValues) {
for (Object bindIdValue : request.descriptor().bindIdValues(value)) {
request.addBindValue(bindIdValue);
}
}
@Override
public void addSql(SpiExpressionRequest request) {
DefaultExpressionRequest r = (DefaultExpressionRequest) request;
String idSql = r.getBeanDescriptor().idBinderIdSql(null);
request.parse(idSql);
request.parse(request.descriptor().idBinderIdSql(null));
}
/**
@@ -66,34 +66,29 @@ public final class IdInExpression extends NonPrepareExpression implements IdInCo
return;
}
// Bind the ID values including EmbeddedId and multiple ID
DefaultExpressionRequest r = (DefaultExpressionRequest) request;
BeanDescriptor<?> descriptor = r.getBeanDescriptor();
IdBinder idBinder = descriptor.idBinder();
idBinder.addIdInBindValues(request, idCollection);
request.descriptor().idBinder().addIdInBindValues(request, idCollection);
}
/**
* For use with deleting non-attached detail beans during stateless update.
*/
public void addSqlNoAlias(SpiExpressionRequest request) {
DefaultExpressionRequest r = (DefaultExpressionRequest) request;
BeanDescriptor<?> descriptor = r.getBeanDescriptor();
IdBinder idBinder = descriptor.idBinder();
if (idCollection.isEmpty()) {
request.append(SQL_FALSE); // append false for this stage
} else {
final BeanDescriptor<?> descriptor = request.descriptor();
request.property(descriptor.idBinder().getBindIdInSql(null));
request.append(idBinder.getIdInValueExpr(false, idCollection.size()));
request.append(descriptor.idBinder().getIdInValueExpr(false, idCollection.size()));
}
}
@Override
public void addSql(SpiExpressionRequest request) {
BeanDescriptor<?> descriptor = request.getBeanDescriptor();
IdBinder idBinder = descriptor.idBinder();
if (idCollection.isEmpty()) {
request.append(SQL_FALSE); // append false for this stage
} else {
final BeanDescriptor<?> descriptor = request.descriptor();
final IdBinder idBinder = descriptor.idBinder();
if (idBinder.isComplexId()) {
request.parse(descriptor.idBinderInLHSSql());
request.append(idBinder.getIdInValueExpr(false, idCollection.size()));
@@ -89,7 +89,7 @@ final class InPairsExpression extends AbstractExpression {
request.append(not ? SQL_TRUE : SQL_FALSE);
return;
}
request.parse(request.getDbPlatformHandler().concat(property0, separator, property1, suffix));
request.parse(request.platformHandler().concat(property0, separator, property1, suffix));
request.appendInExpression(not, concatBindValues);
}
@@ -97,14 +97,12 @@ final class JsonPathExpression extends AbstractExpression {
@Override
public void addSql(SpiExpressionRequest request) {
// Use DB specific expression handling (Postgres and Oracle supported)
request.getDbPlatformHandler().json(request, propName, path, operator, value);
request.platformHandler().json(request, propName, path, operator, value);
}
@Override
public void addBindValues(SpiExpressionRequest request) {
if (value != null) {
// value is null for EXISTS/NOT EXISTS
request.addBindValue(value);
@@ -185,7 +185,7 @@ public final class CQueryPredicates {
dbOrderBy = deployParser.parse(logicalOrderBy);
}
// create a copy of the includes required to support the orderBy
orderByIncludes = new HashSet<>(deployParser.getIncludes());
orderByIncludes = new HashSet<>(deployParser.includes());
}
SpiExpressionList<?> whereExp = query.getWhereExpressions();
if (whereExp != null) {
@@ -212,7 +212,7 @@ public final class CQueryPredicates {
}
}
if (buildSql) {
predicateIncludes = deployParser.getIncludes();
predicateIncludes = deployParser.includes();
}
}
@@ -303,7 +303,7 @@ public final class CQueryPredicates {
* Return the bind values for the where expression.
*/
public List<Object> whereExprBindValues() {
return where == null ? Collections.emptyList() : where.getBindValues();
return where == null ? Collections.emptyList() : where.bindValues();
}
/**
@@ -15,7 +15,7 @@ public class BetweenExpressionTest extends BaseExpressionTest {
BetweenExpression exp = new BetweenExpression("startDate", 1, 2);
exp.addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("startDate between ? and ?");
assertThat(expReq.sql()).isEqualTo("startDate between ? and ?");
}
@Test
@@ -15,7 +15,7 @@ public class BetweenPropertyExpressionTest extends BaseExpressionTest {
public void sqlExpression() {
TDSpiExpressionRequest request = new TDSpiExpressionRequest(null);
exp("a", "b", 10).addSql(request);
Assertions.assertThat(request.getSql()).isEqualTo(" ? between a and b");
Assertions.assertThat(request.sql()).isEqualTo(" ? between a and b");
}
@Test
@@ -15,7 +15,7 @@ public class InRangeExpressionTest extends BaseExpressionTest {
InRangeExpression exp = new InRangeExpression("startDate", 1, 2);
exp.addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("(startDate >= ? and startDate < ?)");
assertThat(expReq.sql()).isEqualTo("(startDate >= ? and startDate < ?)");
}
@Test
@@ -29,7 +29,7 @@ public class LogicExpressionTest extends BaseExpressionTest {
LogicExpression and = and(eq("a", 10), eq("b", 10));
and.addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("(a = ? and b = ?)");
assertThat(expReq.sql()).isEqualTo("(a = ? and b = ?)");
}
@Test
@@ -22,7 +22,7 @@ public class NullExpressionTest extends BaseExpressionTest {
nullExp("id", true).addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("id is not null");
assertThat(expReq.sql()).isEqualTo("id is not null");
}
@Test
@@ -32,7 +32,7 @@ public class NullExpressionTest extends BaseExpressionTest {
nullExp("id", false).addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("id is null");
assertThat(expReq.sql()).isEqualTo("id is null");
}
@Test
@@ -42,7 +42,7 @@ public class NullExpressionTest extends BaseExpressionTest {
nullExp("customer", true).addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("customer.id is not null");
assertThat(expReq.sql()).isEqualTo("customer.id is not null");
}
@Test
@@ -52,7 +52,7 @@ public class NullExpressionTest extends BaseExpressionTest {
nullExp("customer", false).addSql(expReq);
assertThat(expReq.getSql()).isEqualTo("customer.id is null");
assertThat(expReq.sql()).isEqualTo("customer.id is null");
}
@Test
@@ -24,7 +24,7 @@ public class TDSpiExpressionRequest implements SpiExpressionRequest {
}
@Override
public DbExpressionHandler getDbPlatformHandler() {
public DbExpressionHandler platformHandler() {
return null;
}
@@ -34,12 +34,12 @@ public class TDSpiExpressionRequest implements SpiExpressionRequest {
}
@Override
public BeanDescriptor<?> getBeanDescriptor() {
public BeanDescriptor<?> descriptor() {
return descriptor;
}
@Override
public SpiOrmQueryRequest<?> getQueryRequest() {
public SpiOrmQueryRequest<?> queryRequest() {
return null;
}
@@ -72,12 +72,12 @@ public class TDSpiExpressionRequest implements SpiExpressionRequest {
}
@Override
public String getSql() {
public String sql() {
return sql.toString();
}
@Override
public ArrayList<Object> getBindValues() {
public ArrayList<Object> bindValues() {
return null;
}
@@ -15,7 +15,7 @@ public class HanaDbExpressionTest {
SpiExpressionRequest request = new DefaultExpressionRequest(null);
expression.arrayContains(request, "arrayproperty", true, "v1", "v2", "v3");
assertEquals("(? member of arrayproperty) and (? member of arrayproperty) and (? member of arrayproperty)",
request.getSql());
request.sql());
}
@Test
@@ -24,28 +24,28 @@ public class HanaDbExpressionTest {
expression.arrayContains(request, "arrayproperty", false, "v1", "v2", "v3");
assertEquals(
"(? not member of arrayproperty) and (? not member of arrayproperty) and (? not member of arrayproperty)",
request.getSql());
request.sql());
}
@Test
public void testArrayContainsEmpty() {
SpiExpressionRequest request = new DefaultExpressionRequest(null);
expression.arrayContains(request, "arrayproperty", true);
assertEquals("", request.getSql());
assertEquals("", request.sql());
}
@Test
public void testArrayIsEmpty() {
SpiExpressionRequest request = new DefaultExpressionRequest(null);
expression.arrayIsEmpty(request, "arrayproperty", true);
assertEquals("cardinality(arrayproperty) = 0", request.getSql());
assertEquals("cardinality(arrayproperty) = 0", request.sql());
}
@Test
public void testArrayIsNotEmpty() {
SpiExpressionRequest request = new DefaultExpressionRequest(null);
expression.arrayIsEmpty(request, "arrayproperty", false);
assertEquals("cardinality(arrayproperty) <> 0", request.getSql());
assertEquals("cardinality(arrayproperty) <> 0", request.sql());
}
@Test
@@ -64,6 +64,6 @@ public class HanaDbExpressionTest {
public void testJson() {
SpiExpressionRequest request = new DefaultExpressionRequest(null);
expression.json(request, "jsonproperty", "path", Op.EQ, "val");
assertEquals("json_value(jsonproperty, '$.path') = ?", request.getSql());
assertEquals("json_value(jsonproperty, '$.path') = ?", request.sql());
}
}
@@ -15,6 +15,6 @@ public class MySqlDbExpressionTest {
public void testJson() {
SpiExpressionRequest request = new DefaultExpressionRequest(null);
expression.json(request, "jsonproperty", "path", Op.EQ, "val");
assertEquals("(jsonproperty ->> '$.path') = ?", request.getSql());
assertEquals("(jsonproperty ->> '$.path') = ?", request.sql());
}
}