mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Merge pull request #3170 from ebean-orm/feature/prefer-char-append
Refactor prefer char append
This commit is contained in:
@@ -333,10 +333,10 @@ public class OrderBy<T> implements Serializable {
|
||||
sb.append(property);
|
||||
}
|
||||
if (!ascending) {
|
||||
sb.append(" ").append("desc");
|
||||
sb.append(' ').append("desc");
|
||||
}
|
||||
if (nulls != null) {
|
||||
sb.append(" ").append(nulls).append(" ").append(highLow);
|
||||
sb.append(' ').append(nulls).append(' ').append(highLow);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public final class ToStringBuilder {
|
||||
id.putIfAbsent(bean, 0);
|
||||
}
|
||||
if (counter <= MAX) {
|
||||
sb.append(bean.getClass().getSimpleName()).append("@").append(counter).append("(");
|
||||
sb.append(bean.getClass().getSimpleName()).append('@').append(counter).append('(');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ public final class ToStringBuilder {
|
||||
*/
|
||||
public void end() {
|
||||
if (counter <= MAX) {
|
||||
sb.append(")");
|
||||
sb.append(')');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public final class ToStringBuilder {
|
||||
} else {
|
||||
sb.append(", ");
|
||||
}
|
||||
sb.append(name).append(":");
|
||||
sb.append(name).append(':');
|
||||
}
|
||||
|
||||
private void value(Object value) {
|
||||
@@ -125,20 +125,20 @@ public final class ToStringBuilder {
|
||||
sb.append("{}");
|
||||
} else {
|
||||
boolean firstElement = true;
|
||||
sb.append("{");
|
||||
sb.append('{');
|
||||
for (Map.Entry<?, ?> entry : map.entrySet()) {
|
||||
if (firstElement) {
|
||||
firstElement = false;
|
||||
} else {
|
||||
sb.append(", ");
|
||||
}
|
||||
sb.append(entry.getKey()).append(":");
|
||||
sb.append(entry.getKey()).append(':');
|
||||
value(entry.getValue());
|
||||
if (counter > MAX) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
sb.append("}");
|
||||
sb.append('}');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ public final class ToStringBuilder {
|
||||
return;
|
||||
}
|
||||
boolean firstElement = true;
|
||||
sb.append("[");
|
||||
sb.append('[');
|
||||
for (Object o : c) {
|
||||
if (firstElement) {
|
||||
firstElement = false;
|
||||
@@ -163,7 +163,7 @@ public final class ToStringBuilder {
|
||||
return;
|
||||
}
|
||||
}
|
||||
sb.append("]");
|
||||
sb.append(']');
|
||||
}
|
||||
|
||||
private boolean push(Object bean) {
|
||||
@@ -178,7 +178,7 @@ public final class ToStringBuilder {
|
||||
Integer idx = id.putIfAbsent(bean, counter++);
|
||||
if (idx != null) {
|
||||
--counter;
|
||||
sb.append(bean.getClass().getSimpleName()).append("@").append(idx);
|
||||
sb.append(bean.getClass().getSimpleName()).append('@').append(idx);
|
||||
return false;
|
||||
}
|
||||
first = true;
|
||||
|
||||
@@ -23,11 +23,11 @@ public class BasicSqlLimitOffset implements BasicSqlLimiter {
|
||||
sb.append(dbSql);
|
||||
|
||||
if (maxRows > 0) {
|
||||
sb.append(" ").append(LIMIT);
|
||||
sb.append(" ").append(maxRows);
|
||||
sb.append(' ').append(LIMIT);
|
||||
sb.append(' ').append(maxRows);
|
||||
}
|
||||
if (firstRow > 0) {
|
||||
sb.append(" ").append(OFFSET).append(" ");
|
||||
sb.append(' ').append(OFFSET).append(' ');
|
||||
sb.append(firstRow);
|
||||
}
|
||||
return sb.toString();
|
||||
|
||||
@@ -41,6 +41,11 @@ public interface SpiExpressionRequest {
|
||||
*/
|
||||
SpiExpressionRequest append(String expression);
|
||||
|
||||
/**
|
||||
* Append to the expression sql without any parsing.
|
||||
*/
|
||||
SpiExpressionRequest append(char c);
|
||||
|
||||
/**
|
||||
* Append to the expression sql with logical property parsing to db columns with logical path prefix.
|
||||
* <p>
|
||||
|
||||
@@ -121,7 +121,7 @@ final class DumpMetrics {
|
||||
}
|
||||
|
||||
private void appendQueryName(MetaQueryMetric metric, StringBuilder sb) {
|
||||
sb.append("query:").append(padName(metric.name())).append(" ");
|
||||
sb.append("query:").append(padName(metric.name())).append(' ');
|
||||
}
|
||||
|
||||
private void appendProfileAndSql(MetaQueryMetric metric, StringBuilder sb) {
|
||||
@@ -136,7 +136,7 @@ final class DumpMetrics {
|
||||
|
||||
private void log(MetaTimedMetric metric) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(padNameTimed(metric.name())).append(" ");
|
||||
sb.append(padNameTimed(metric.name())).append(' ');
|
||||
appendCounters(metric, sb);
|
||||
out(sb.toString());
|
||||
}
|
||||
|
||||
@@ -105,9 +105,9 @@ public final class TableJoin {
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder(30);
|
||||
sb.append(type).append(" ").append(table).append(" ");
|
||||
sb.append(type).append(' ').append(table).append(' ');
|
||||
for (TableJoinColumn column : columns) {
|
||||
sb.append(column).append(" ");
|
||||
sb.append(column).append(' ');
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
+4
-4
@@ -68,7 +68,7 @@ final class AllEqualsExpression extends NonPrepareExpression {
|
||||
if (propMap.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
request.append("(");
|
||||
request.append('(');
|
||||
int count = 0;
|
||||
for (Map.Entry<String, Object> entry : propMap.entrySet()) {
|
||||
Object value = entry.getValue();
|
||||
@@ -84,7 +84,7 @@ final class AllEqualsExpression extends NonPrepareExpression {
|
||||
}
|
||||
count++;
|
||||
}
|
||||
request.append(")");
|
||||
request.append(')');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -105,9 +105,9 @@ final class AllEqualsExpression extends NonPrepareExpression {
|
||||
} else {
|
||||
builder.append(" =?");
|
||||
}
|
||||
builder.append(",");
|
||||
builder.append(',');
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ final class ArrayContainsExpression extends AbstractExpression {
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("ArrayContains[").append(propName)
|
||||
.append(" b:").append(contains)
|
||||
.append(" ?:").append(values.length).append("]");
|
||||
.append(" ?:").append(values.length).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ final class ArrayIsEmptyExpression extends AbstractExpression {
|
||||
} else {
|
||||
builder.append("ArrayIsNotEmpty[");
|
||||
}
|
||||
builder.append(propName).append("]");
|
||||
builder.append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -57,7 +57,7 @@ final class BetweenExpression extends AbstractExpression {
|
||||
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("Between[").append(propName).append("]");
|
||||
builder.append("Between[").append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ final class BetweenPropertyExpression extends NonPrepareExpression {
|
||||
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("BetweenProperties[").append("low:").append(lowProperty).append(" high:").append(highProperty).append("]");
|
||||
builder.append("BetweenProperties[").append("low:").append(lowProperty).append(" high:").append(highProperty).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -61,9 +61,9 @@ final class CaseInsensitiveEqualExpression extends AbstractValueExpression {
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
if (not) {
|
||||
builder.append("Ine[").append(propName).append("]");
|
||||
builder.append("Ine[").append(propName).append(']');
|
||||
} else {
|
||||
builder.append("Ieq[").append(propName).append("]");
|
||||
builder.append("Ieq[").append(propName).append(']');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -209,7 +209,7 @@ final class DefaultExampleExpression implements SpiExpression, ExampleExpression
|
||||
if (list.isEmpty()) {
|
||||
request.append(SQL_TRUE);
|
||||
} else {
|
||||
request.append("(");
|
||||
request.append('(');
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
SpiExpression item = list.get(i);
|
||||
if (i > 0) {
|
||||
@@ -217,7 +217,7 @@ final class DefaultExampleExpression implements SpiExpression, ExampleExpression
|
||||
}
|
||||
item.addSql(request);
|
||||
}
|
||||
request.append(")");
|
||||
request.append(')');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,9 +229,9 @@ final class DefaultExampleExpression implements SpiExpression, ExampleExpression
|
||||
builder.append("Example[");
|
||||
for (SpiExpression expr : list) {
|
||||
expr.queryPlanHash(builder);
|
||||
builder.append(",");
|
||||
builder.append(',');
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -610,7 +610,7 @@ public class DefaultExpressionList<T> implements SpiExpressionList<T> {
|
||||
builder.append("textRoot:true ");
|
||||
}
|
||||
if (allDocNestedPath != null) {
|
||||
builder.append("path:").append(allDocNestedPath).append(" ");
|
||||
builder.append("path:").append(allDocNestedPath).append(' ');
|
||||
}
|
||||
for (SpiExpression expr : list) {
|
||||
expr.queryPlanHash(builder);
|
||||
|
||||
+8
-5
@@ -82,7 +82,7 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
|
||||
*/
|
||||
@Override
|
||||
public void appendLike(boolean rawLikeExpression) {
|
||||
sql.append(" ");
|
||||
sql.append(' ');
|
||||
sql.append(queryRequest.dbLikeClause(rawLikeExpression));
|
||||
}
|
||||
|
||||
@@ -114,15 +114,18 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
|
||||
return sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append text the underlying sql expression.
|
||||
*/
|
||||
@Override
|
||||
public SpiExpressionRequest append(String expression) {
|
||||
sql.append(expression);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpiExpressionRequest append(char c) {
|
||||
sql.append(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpiExpressionRequest property(String expression) {
|
||||
if (deployParser == null) {
|
||||
@@ -160,7 +163,7 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
|
||||
if (bindLog == null) {
|
||||
bindLog = new StringBuilder();
|
||||
} else {
|
||||
bindLog.append(",");
|
||||
bindLog.append(',');
|
||||
}
|
||||
bindLog.append(val);
|
||||
}
|
||||
|
||||
+2
-2
@@ -82,7 +82,7 @@ final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreE
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("ExistsQuery[").append(" not:").append(not);
|
||||
builder.append(" sql:").append(sql).append(" ?:").append(bindParams.size()).append("]");
|
||||
builder.append(" sql:").append(sql).append(" ?:").append(bindParams.size()).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -95,7 +95,7 @@ final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreE
|
||||
if (not) {
|
||||
request.append("not ");
|
||||
}
|
||||
request.append("exists (").parse(sql).append(")");
|
||||
request.append("exists (").parse(sql).append(')');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -58,7 +58,7 @@ final class ExistsSqlQueryExpression implements SpiExpression, UnsupportedDocSto
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("ExistsSqlQuery[").append(" not:").append(not);
|
||||
builder.append(" sql:").append(subQuery).append(" ?:").append(bindParams.length).append("]");
|
||||
builder.append(" sql:").append(subQuery).append(" ?:").append(bindParams.length).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,7 +73,7 @@ final class ExistsSqlQueryExpression implements SpiExpression, UnsupportedDocSto
|
||||
if (not) {
|
||||
request.append("not ");
|
||||
}
|
||||
request.append("exists (").parse(subQuery).append(")");
|
||||
request.append("exists (").parse(subQuery).append(')');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -109,7 +109,7 @@ public final class IdInExpression extends NonPrepareExpression implements IdInCo
|
||||
// query plan specific to the number of parameters in the IN clause
|
||||
builder.append(idCollection.size());
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -193,7 +193,7 @@ public final class InExpression extends AbstractExpression implements IdInCommon
|
||||
builder.append(bindValues.size());
|
||||
}
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -103,15 +103,15 @@ final class InPairsExpression extends AbstractExpression {
|
||||
} else {
|
||||
builder.append("InPairs[");
|
||||
}
|
||||
builder.append(property0).append("-");
|
||||
builder.append(property1).append("-");
|
||||
builder.append(separator).append("-");
|
||||
builder.append(property0).append('-');
|
||||
builder.append(property1).append('-');
|
||||
builder.append(separator).append('-');
|
||||
builder.append(suffix).append(" ?");
|
||||
if (!multiValueSupported || entries.isEmpty()) {
|
||||
// query plan specific to the number of parameters in the IN clause
|
||||
builder.append(entries.size());
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -55,12 +55,12 @@ final class InRangeExpression extends AbstractExpression {
|
||||
if (prop != null && prop.isDbEncrypted()) {
|
||||
pname = prop.beanProperty().decryptProperty(propName);
|
||||
}
|
||||
request.append("(").property(pname).append(" >= ? and ").property(pname).append(" < ?)");
|
||||
request.append('(').property(pname).append(" >= ? and ").property(pname).append(" < ?)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("InRange[").append(propName).append("]");
|
||||
builder.append("InRange[").append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -98,10 +98,10 @@ final class InTuplesExpression extends AbstractExpression {
|
||||
request.append(not ? SQL_TRUE : SQL_FALSE);
|
||||
return;
|
||||
}
|
||||
request.append("(");
|
||||
request.append('(');
|
||||
for (int i = 0; i < properties.length; i++) {
|
||||
if (i > 0) {
|
||||
request.append(",");
|
||||
request.append(',');
|
||||
}
|
||||
request.property(properties[i]);
|
||||
}
|
||||
@@ -111,7 +111,7 @@ final class InTuplesExpression extends AbstractExpression {
|
||||
} else {
|
||||
addSqlBinding(request);
|
||||
}
|
||||
request.append(")");
|
||||
request.append(')');
|
||||
}
|
||||
|
||||
private void addSqlLiterals(SpiExpressionRequest request) {
|
||||
@@ -136,7 +136,7 @@ final class InTuplesExpression extends AbstractExpression {
|
||||
final String eb = entryBinding();
|
||||
for (int i = 0; i < entries.size(); i++) {
|
||||
if (i > 0) {
|
||||
request.append(",");
|
||||
request.append(',');
|
||||
}
|
||||
request.append(eb);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ final class IsEmptyExpression extends AbstractExpression {
|
||||
request
|
||||
.append("exists (select 1 ")
|
||||
.parse(prop.assocIsEmpty(request, propertyPath))
|
||||
.append(")");
|
||||
.append(')');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,7 +97,7 @@ final class IsEmptyExpression extends AbstractExpression {
|
||||
} else {
|
||||
builder.append("IsNotEmpty[");
|
||||
}
|
||||
builder.append(propName).append("]");
|
||||
builder.append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -80,7 +80,7 @@ final class JsonPathExpression extends AbstractExpression {
|
||||
if (upperValue != null) {
|
||||
builder.append(" ?2");
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -152,7 +152,7 @@ final class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expr
|
||||
List<SpiExpression> list = exprList.internalList();
|
||||
if (!list.isEmpty()) {
|
||||
request.append(type.prefix());
|
||||
request.append("(");
|
||||
request.append('(');
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
SpiExpression item = list.get(i);
|
||||
if (i > 0) {
|
||||
@@ -160,7 +160,7 @@ final class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expr
|
||||
}
|
||||
item.addSql(request);
|
||||
}
|
||||
request.append(")");
|
||||
request.append(')');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,12 +176,12 @@ final class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expr
|
||||
*/
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append(type).append("[");
|
||||
builder.append(type).append('[');
|
||||
for (SpiExpression expr : exprList.internalList()) {
|
||||
expr.queryPlanHash(builder);
|
||||
builder.append(",");
|
||||
builder.append(',');
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -44,7 +44,7 @@ final class LikeExpression extends AbstractValueExpression {
|
||||
pname = prop.beanProperty().decryptProperty(propName);
|
||||
}
|
||||
if (caseInsensitive) {
|
||||
request.append("lower(").property(pname).append(")");
|
||||
request.append("lower(").property(pname).append(')');
|
||||
} else {
|
||||
request.property(pname);
|
||||
}
|
||||
@@ -62,9 +62,9 @@ final class LikeExpression extends AbstractValueExpression {
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
if (caseInsensitive){
|
||||
builder.append("I");
|
||||
builder.append('I');
|
||||
}
|
||||
builder.append("Like[").append(type).append(" ").append(propName).append("]");
|
||||
builder.append("Like[").append(type).append(' ').append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -141,11 +141,11 @@ abstract class LogicExpression implements SpiExpression {
|
||||
@Override
|
||||
public void addSql(SpiExpressionRequest request) {
|
||||
|
||||
request.append("(");
|
||||
request.append('(');
|
||||
expOne.addSql(request);
|
||||
request.append(conjunction ? AND : OR);
|
||||
expTwo.addSql(request);
|
||||
request.append(")");
|
||||
request.append(')');
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -159,11 +159,11 @@ abstract class LogicExpression implements SpiExpression {
|
||||
*/
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("Logic").append(conjunction ? AND : OR).append("[");
|
||||
builder.append("Logic").append(conjunction ? AND : OR).append('[');
|
||||
expOne.queryPlanHash(builder);
|
||||
builder.append(",");
|
||||
builder.append(',');
|
||||
expTwo.queryPlanHash(builder);
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ final class NativeILikeExpression extends AbstractExpression {
|
||||
*/
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("NativeILike[").append(propName).append("]");
|
||||
builder.append("NativeILike[").append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -72,10 +72,10 @@ final class NestedPathWrapperExpression implements SpiExpression {
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("NestedPath[");
|
||||
if (nestedPath != null) {
|
||||
builder.append("path:").append(nestedPath).append(" ");
|
||||
builder.append("path:").append(nestedPath).append(' ');
|
||||
}
|
||||
delegate.queryPlanHash(builder);
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -96,7 +96,7 @@ final class NotExpression implements SpiExpression {
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("Not[");
|
||||
exp.queryPlanHash(builder);
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -86,7 +86,7 @@ final class NullExpression extends AbstractExpression {
|
||||
} else {
|
||||
builder.append("Null[");
|
||||
}
|
||||
builder.append(propName).append("]");
|
||||
builder.append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -65,7 +65,7 @@ final class RawExpression extends NonPrepareExpression {
|
||||
if (values != null) {
|
||||
builder.append(" ?").append(values.length);
|
||||
}
|
||||
builder.append("]");
|
||||
builder.append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -54,9 +54,9 @@ final class RawExpressionBuilder {
|
||||
StringBuilder sqlExpand = new StringBuilder(values.size() * 2);
|
||||
for (int i = 0; i < values.size(); i++) {
|
||||
if (i > 0) {
|
||||
sqlExpand.append(",");
|
||||
sqlExpand.append(',');
|
||||
}
|
||||
sqlExpand.append("?");
|
||||
sqlExpand.append('?');
|
||||
}
|
||||
return sqlExpand.toString();
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ public final class SimpleExpression extends AbstractValueExpression {
|
||||
*/
|
||||
@Override
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append(type.name()).append("[").append(propName).append("]");
|
||||
builder.append(type.name()).append('[').append(propName).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -57,7 +57,7 @@ final class SubQueryExpression extends AbstractExpression implements Unsupported
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("SubQuery[").append(propName).append(op.expression)
|
||||
.append(" sql:").append(sql)
|
||||
.append(" ?:").append(bindParams.size()).append("]");
|
||||
.append(" ?:").append(bindParams.size()).append(']');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -75,7 +75,7 @@ final class SubQueryExpression extends AbstractExpression implements Unsupported
|
||||
|
||||
@Override
|
||||
public void addSql(SpiExpressionRequest request) {
|
||||
request.property(propName).append(op.expression).append("(").parse(sql).append(")");
|
||||
request.property(propName).append(op.expression).append('(').parse(sql).append(')');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -31,7 +31,7 @@ final class SubQueryRawExpression extends AbstractExpression implements Unsuppor
|
||||
public void queryPlanHash(StringBuilder builder) {
|
||||
builder.append("SubQueryRaw[").append(propName).append(op.expression)
|
||||
.append(" subQuery:").append(subQuery)
|
||||
.append(" ?:").append(bindParams.length).append("]");
|
||||
.append(" ?:").append(bindParams.length).append(']');
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -43,7 +43,7 @@ final class SubQueryRawExpression extends AbstractExpression implements Unsuppor
|
||||
|
||||
@Override
|
||||
public void addSql(SpiExpressionRequest request) {
|
||||
request.property(propName).append(op.expression).append("(").append(subQuery).append(")");
|
||||
request.property(propName).append(op.expression).append('(').append(subQuery).append(')');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@ abstract class BaseDbExpression implements DbExpressionHandler {
|
||||
@Override
|
||||
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
|
||||
final String bitOp = bitOp(operator);
|
||||
request.append("(").property(propName).append(" ").append(bitOp).append(" ? ").append(compare).append(" ?)");
|
||||
request.append('(').property(propName).append(' ').append(bitOp).append(" ? ").append(compare).append(" ?)");
|
||||
}
|
||||
|
||||
private String bitOp(BitwiseOp operator) {
|
||||
@@ -30,7 +30,7 @@ abstract class BaseDbExpression implements DbExpressionHandler {
|
||||
*/
|
||||
protected void bitwiseFunction(SpiExpressionRequest request, String propName, BitwiseOp operator, String compare) {
|
||||
final String funcName = functionName(operator);
|
||||
request.append(funcName).append("(").property(propName).append(", ?) ").append(compare).append(" ?");
|
||||
request.append(funcName).append('(').property(propName).append(", ?) ").append(compare).append(" ?");
|
||||
}
|
||||
|
||||
protected String functionName(BitwiseOp operator) {
|
||||
@@ -60,7 +60,7 @@ abstract class BaseDbExpression implements DbExpressionHandler {
|
||||
*/
|
||||
String concatOperator(String property0, String separator, String property1, String suffix) {
|
||||
StringBuilder sb = new StringBuilder(40);
|
||||
sb.append("(").append(property0).append("||'").append(separator).append("'||").append(property1);
|
||||
sb.append('(').append(property0).append("||'").append(separator).append("'||").append(property1);
|
||||
if (suffix != null && !suffix.isEmpty()) {
|
||||
sb.append("||'").append(suffix).append('\'');
|
||||
}
|
||||
|
||||
+1
-1
@@ -11,6 +11,6 @@ final class H2DbExpression extends BasicDbExpression {
|
||||
@Override
|
||||
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
|
||||
final String funcName = functionName(operator);
|
||||
request.append(funcName).append("(").property(propName).append(", cast(? as long)) ").append(compare).append(" cast(? as long)");
|
||||
request.append(funcName).append('(').property(propName).append(", cast(? as long)) ").append(compare).append(" cast(? as long)");
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -21,7 +21,7 @@ final class HanaDbExpression extends BaseDbExpression {
|
||||
|
||||
@Override
|
||||
public void arrayIsEmpty(SpiExpressionRequest request, String propName, boolean empty) {
|
||||
request.append("cardinality(").property(propName).append(")");
|
||||
request.append("cardinality(").property(propName).append(')');
|
||||
if (empty) {
|
||||
request.append(" = 0");
|
||||
} else {
|
||||
@@ -36,7 +36,7 @@ final class HanaDbExpression extends BaseDbExpression {
|
||||
if (suffix != null && !suffix.isEmpty()) {
|
||||
sb.append("||'").append(suffix).append('\'');
|
||||
}
|
||||
sb.append(")");
|
||||
sb.append(')');
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ final class HanaDbExpression extends BaseDbExpression {
|
||||
if (!contains) {
|
||||
request.append(" not ");
|
||||
}
|
||||
request.append(" member of ").property(propName).append(")");
|
||||
request.append(" member of ").property(propName).append(')');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -10,6 +10,6 @@ final class MariaDbExpression extends BasicDbExpression {
|
||||
|
||||
@Override
|
||||
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
|
||||
request.append("(").property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
|
||||
request.append('(').property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ final class MySqlDbExpression extends BasicDbExpression {
|
||||
|
||||
@Override
|
||||
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
|
||||
request.append("(").property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
|
||||
request.append('(').property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -18,13 +18,13 @@ final class PostgresDbExpression extends BaseDbExpression {
|
||||
String[] paths = path.split("\\.");
|
||||
if (paths.length == 1) {
|
||||
// (t0.content ->> 'title') = 'Some value'
|
||||
request.append("(").property(propName).append(" ->> '").append(path).append("')");
|
||||
request.append('(').property(propName).append(" ->> '").append(path).append("')");
|
||||
} else {
|
||||
// (t0.content #>> '{path,inner}') = 'Some value'
|
||||
request.append("(").property(propName).append(" #>> '{");
|
||||
request.append('(').property(propName).append(" #>> '{");
|
||||
for (int i = 0; i < paths.length; i++) {
|
||||
if (i > 0) {
|
||||
request.append(",");
|
||||
request.append(',');
|
||||
}
|
||||
request.append(paths[i]);
|
||||
}
|
||||
@@ -42,9 +42,9 @@ final class PostgresDbExpression extends BaseDbExpression {
|
||||
for (int i = 1; i < values.length; i++) {
|
||||
request.append(",?");
|
||||
}
|
||||
request.append("]").append(PostgresCast.cast(values[0], true));
|
||||
request.append(']').append(PostgresCast.cast(values[0], true));
|
||||
if (!contains) {
|
||||
request.append(")");
|
||||
request.append(')');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ final class DTimeMetricStats implements TimedMetricStats {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (name != null) {
|
||||
sb.append("name:").append(name).append(" ");
|
||||
sb.append("name:").append(name).append(' ');
|
||||
}
|
||||
sb.append("count:").append(count)
|
||||
.append(" total:").append(total)
|
||||
|
||||
@@ -148,7 +148,7 @@ final class CQueryBuilder {
|
||||
StringBuilder sb = new StringBuilder(200);
|
||||
sb.append("update ").append(request.descriptor().baseTable());
|
||||
if (rootTableAlias != null) {
|
||||
sb.append(" ").append(rootTableAlias);
|
||||
sb.append(' ').append(rootTableAlias);
|
||||
}
|
||||
sb.append(" set ").append(predicates.dbUpdateClause());
|
||||
String updateClause = sb.toString();
|
||||
|
||||
@@ -70,7 +70,7 @@ final class CQueryBuilderRawSql {
|
||||
} else {
|
||||
sb.append(sql.getPreFrom());
|
||||
}
|
||||
sb.append(" ");
|
||||
sb.append(' ');
|
||||
|
||||
String s = sql.getPreWhere();
|
||||
BindParams bindParams = request.query().bindParams();
|
||||
@@ -80,7 +80,7 @@ final class CQueryBuilderRawSql {
|
||||
// clause (so not allowed in having etc - use unparsed)
|
||||
s = BindParamsParser.parse(bindParams, s);
|
||||
}
|
||||
sb.append(s).append(" ");
|
||||
sb.append(s).append(' ');
|
||||
|
||||
String dynamicWhere = null;
|
||||
if (request.query().getId() != null) {
|
||||
@@ -109,12 +109,12 @@ final class CQueryBuilderRawSql {
|
||||
} else {
|
||||
sb.append(" where ");
|
||||
}
|
||||
sb.append(dynamicWhere).append(" ");
|
||||
sb.append(dynamicWhere).append(' ');
|
||||
}
|
||||
|
||||
String preHaving = sql.getPreHaving();
|
||||
if (hasValue(preHaving)) {
|
||||
sb.append(preHaving).append(" ");
|
||||
sb.append(preHaving).append(' ');
|
||||
}
|
||||
|
||||
String dbHaving = predicates.dbHaving();
|
||||
@@ -124,10 +124,10 @@ final class CQueryBuilderRawSql {
|
||||
} else {
|
||||
sb.append(" having ");
|
||||
}
|
||||
sb.append(dbHaving).append(" ");
|
||||
sb.append(dbHaving).append(' ');
|
||||
}
|
||||
if (hasValue(orderBy)) {
|
||||
sb.append(" ").append(sql.getOrderByPrefix()).append(" ").append(orderBy);
|
||||
sb.append(' ').append(sql.getOrderByPrefix()).append(' ').append(orderBy);
|
||||
}
|
||||
return sb.toString().trim();
|
||||
}
|
||||
|
||||
@@ -122,12 +122,12 @@ final class DefaultDbSqlContext implements DbSqlContext {
|
||||
}
|
||||
|
||||
tableJoins.add(joinKey);
|
||||
sb.append(" ").append(type);
|
||||
sb.append(' ').append(type);
|
||||
boolean addAsOfOnClause = false;
|
||||
if (draftSupport != null) {
|
||||
appendTable(table, draftSupport.draftTable(table));
|
||||
} else if (!historyQuery) {
|
||||
sb.append(" ").append(table).append(" ");
|
||||
sb.append(' ').append(table).append(' ');
|
||||
} else {
|
||||
// check if there is an associated history table and if so
|
||||
// use the unionAll view - we expect an additional predicate to match
|
||||
@@ -174,9 +174,9 @@ final class DefaultDbSqlContext implements DbSqlContext {
|
||||
private void appendTable(String table, String draftTable) {
|
||||
if (draftTable != null) {
|
||||
// there is an associated history table and view so use that
|
||||
sb.append(" ").append(draftTable).append(" ");
|
||||
sb.append(' ').append(draftTable).append(' ');
|
||||
} else {
|
||||
sb.append(" ").append(table).append(" ");
|
||||
sb.append(' ').append(table).append(' ');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ final class DefaultDbSqlContext implements DbSqlContext {
|
||||
}
|
||||
// we only want to add this join once
|
||||
formulaJoins.add(converted);
|
||||
sb.append(" ");
|
||||
sb.append(' ');
|
||||
if (joinType == SqlJoinType.OUTER) {
|
||||
if ("join".equalsIgnoreCase(converted.substring(0, 4))) {
|
||||
// prepend left as we are in the 'many' part
|
||||
@@ -259,7 +259,7 @@ final class DefaultDbSqlContext implements DbSqlContext {
|
||||
sb.append(COMMA);
|
||||
sb.append(converted);
|
||||
if (columnAlias != null) {
|
||||
sb.append(" ").append(columnAlias);
|
||||
sb.append(' ').append(columnAlias);
|
||||
} else {
|
||||
appendColumnAlias();
|
||||
}
|
||||
@@ -286,7 +286,7 @@ final class DefaultDbSqlContext implements DbSqlContext {
|
||||
|
||||
private void appendColumnAlias() {
|
||||
if (useColumnAlias) {
|
||||
sb.append(" ");
|
||||
sb.append(' ');
|
||||
sb.append(columnAliasPrefix);
|
||||
sb.append(columnIndex);
|
||||
}
|
||||
|
||||
@@ -66,13 +66,10 @@ final class SqlTreeNodeRoot extends SqlTreeNodeBean {
|
||||
*/
|
||||
@Override
|
||||
public SqlJoinType appendFromBaseTable(DbSqlContext ctx, SqlJoinType joinType) {
|
||||
ctx.append(baseTable);
|
||||
ctx.append(" ").append(baseTableAlias);
|
||||
ctx.appendFromForUpdate();
|
||||
ctx.append(baseTable).append(" ").append(baseTableAlias).appendFromForUpdate();
|
||||
if (includeJoin != null) {
|
||||
String a1 = baseTableAlias;
|
||||
String a2 = "int_"; // unique alias for intersection join
|
||||
includeJoin.addJoin(joinType, a1, a2, ctx);
|
||||
// unique alias for intersection join
|
||||
includeJoin.addJoin(joinType, baseTableAlias, "int_", ctx);
|
||||
}
|
||||
return joinType;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ public final class OrmQueryDetail implements Serializable {
|
||||
if (fetchPaths != null) {
|
||||
for (OrmQueryProperties join : fetchPaths.values()) {
|
||||
if (sb.length() > 0) {
|
||||
sb.append(" ");
|
||||
sb.append(' ');
|
||||
}
|
||||
join.asStringDebug("fetch ", sb);
|
||||
}
|
||||
|
||||
@@ -265,7 +265,7 @@ public final class OrmQueryProperties implements Serializable {
|
||||
public void asStringDebug(String prefix, StringBuilder sb) {
|
||||
sb.append(prefix);
|
||||
if (path != null) {
|
||||
sb.append(path).append(" ");
|
||||
sb.append(path).append(' ');
|
||||
}
|
||||
if (allProperties) {
|
||||
sb.append("(*)");
|
||||
|
||||
@@ -67,7 +67,7 @@ final class DRawSqlColumnsParser {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(split[0]);
|
||||
for (int i = 1; i < split.length - 2; i++) {
|
||||
sb.append(" ").append(split[i]);
|
||||
sb.append(' ').append(split[i]);
|
||||
}
|
||||
return new ColumnMapping.Column(indexPos++, sb.toString(), split[split.length - 1]);
|
||||
}
|
||||
|
||||
+5
-5
@@ -51,19 +51,19 @@ public final class DocPropertyOptions {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (code != null) {
|
||||
sb.append("code:").append(code).append(" ");
|
||||
sb.append("code:").append(code).append(' ');
|
||||
}
|
||||
if (sortable != null) {
|
||||
sb.append("sortable:").append(sortable).append(" ");
|
||||
sb.append("sortable:").append(sortable).append(' ');
|
||||
}
|
||||
if (store != null) {
|
||||
sb.append("store:").append(store).append(" ");
|
||||
sb.append("store:").append(store).append(' ');
|
||||
}
|
||||
if (boost != null) {
|
||||
sb.append("boost:").append(boost).append(" ");
|
||||
sb.append("boost:").append(boost).append(' ');
|
||||
}
|
||||
if (nullValue != null) {
|
||||
sb.append("nullValue:").append(nullValue).append(" ");
|
||||
sb.append("nullValue:").append(nullValue).append(' ');
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
+6
@@ -54,6 +54,12 @@ public class TDSpiExpressionRequest implements SpiExpressionRequest {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpiExpressionRequest append(char c) {
|
||||
sql.append(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpiExpressionRequest property(String expression) {
|
||||
sql.append(expression);
|
||||
|
||||
@@ -9,11 +9,11 @@ final class HanaBasicSqlLimiter implements BasicSqlLimiter {
|
||||
StringBuilder sb = new StringBuilder(50 + dbSql.length());
|
||||
sb.append(dbSql);
|
||||
if (maxRows > 0) {
|
||||
sb.append(" ").append("limit");
|
||||
sb.append(" ").append(maxRows);
|
||||
sb.append(' ').append("limit");
|
||||
sb.append(' ').append(maxRows);
|
||||
|
||||
if (firstRow > 0) {
|
||||
sb.append(" ").append("offset").append(" ");
|
||||
sb.append(' ').append("offset").append(' ');
|
||||
sb.append(firstRow);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,11 +22,11 @@ public final class SqlAnywhereLimiter implements SqlLimiter {
|
||||
}
|
||||
int maxRows = request.getMaxRows();
|
||||
if (maxRows > 0) {
|
||||
sb.append("top ").append(maxRows).append(" ");
|
||||
sb.append("top ").append(maxRows).append(' ');
|
||||
}
|
||||
int firstRow = request.getFirstRow();
|
||||
if (firstRow > 0) {
|
||||
sb.append("start at ").append(firstRow + 1).append(" ");
|
||||
sb.append("start at ").append(firstRow + 1).append(' ');
|
||||
}
|
||||
sb.append(dbSql);
|
||||
String sql = request.getDbPlatform().completeSql(sb.toString(), request.getOrmQuery());
|
||||
|
||||
+2
-2
@@ -14,8 +14,8 @@ final class SqlServerBasicSqlLimiter implements BasicSqlLimiter {
|
||||
if (!dbSql.toLowerCase().contains("order by")) {
|
||||
sb.append(" order by 1");
|
||||
}
|
||||
sb.append(" ").append("offset");
|
||||
sb.append(" ").append(firstRow).append(" rows");
|
||||
sb.append(' ').append("offset");
|
||||
sb.append(' ').append(firstRow).append(" rows");
|
||||
if (maxRows > 0) {
|
||||
sb.append(" fetch next ").append(maxRows).append(" rows only");
|
||||
}
|
||||
|
||||
+3
-3
@@ -21,7 +21,7 @@ final class SqlServerSqlLimiter implements SqlLimiter {
|
||||
if (request.isDistinct()) {
|
||||
sb.append("distinct ");
|
||||
}
|
||||
sb.append("top ").append(maxRows).append(" ");
|
||||
sb.append("top ").append(maxRows).append(' ');
|
||||
sb.append(dbSql);
|
||||
return new SqlLimitResponse(sb.toString());
|
||||
}
|
||||
@@ -30,8 +30,8 @@ final class SqlServerSqlLimiter implements SqlLimiter {
|
||||
sb.append("distinct ");
|
||||
}
|
||||
sb.append(dbSql);
|
||||
sb.append(" ").append("offset");
|
||||
sb.append(" ").append(firstRow).append(" rows");
|
||||
sb.append(' ').append("offset");
|
||||
sb.append(' ').append(firstRow).append(" rows");
|
||||
if (maxRows > 0) {
|
||||
sb.append(" fetch next ").append(maxRows).append(" rows only");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user