[#6752] Avoid various array allocations due to unnecessary varargs
This commit is contained in:
parent
b3f315ec04
commit
5bef562ef4
@ -66,31 +66,41 @@ final class CombinedCondition extends AbstractCondition {
|
||||
private final Operator operator;
|
||||
private final List<Condition> conditions;
|
||||
|
||||
CombinedCondition(Operator operator, Collection<? extends Condition> conditions) {
|
||||
private CombinedCondition(Operator operator, int size) {
|
||||
if (operator == null)
|
||||
throw new IllegalArgumentException("The argument 'operator' must not be null");
|
||||
|
||||
this.operator = operator;
|
||||
this.conditions = new ArrayList<Condition>(conditions.size());
|
||||
|
||||
init(operator, conditions);
|
||||
this.conditions = new ArrayList<Condition>(size);
|
||||
}
|
||||
|
||||
private final void init(Operator op, Collection<? extends Condition> cond) {
|
||||
for (Condition condition : cond) {
|
||||
if (condition instanceof CombinedCondition) {
|
||||
CombinedCondition combinedCondition = (CombinedCondition) condition;
|
||||
CombinedCondition(Operator operator, Condition left, Condition right) {
|
||||
this(operator, 2);
|
||||
|
||||
if (combinedCondition.operator == op)
|
||||
this.conditions.addAll(combinedCondition.conditions);
|
||||
else
|
||||
this.conditions.add(condition);
|
||||
}
|
||||
else if (condition == null)
|
||||
throw new IllegalArgumentException("The argument 'conditions' must not contain null");
|
||||
add(operator, left);
|
||||
add(operator, right);
|
||||
}
|
||||
|
||||
CombinedCondition(Operator operator, Collection<? extends Condition> conditions) {
|
||||
this(operator, conditions.size());
|
||||
|
||||
for (Condition condition : conditions)
|
||||
add(operator, condition);
|
||||
}
|
||||
|
||||
private final void add(Operator op, Condition condition) {
|
||||
if (condition instanceof CombinedCondition) {
|
||||
CombinedCondition combinedCondition = (CombinedCondition) condition;
|
||||
|
||||
if (combinedCondition.operator == op)
|
||||
this.conditions.addAll(combinedCondition.conditions);
|
||||
else
|
||||
this.conditions.add(condition);
|
||||
}
|
||||
else if (condition == null)
|
||||
throw new IllegalArgumentException("The argument 'conditions' must not contain null");
|
||||
else
|
||||
this.conditions.add(condition);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -10349,6 +10349,15 @@ public class DSL {
|
||||
return FalseCondition.INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a <code>Condition</code> that connects all argument
|
||||
* <code>conditions</code> with {@link Operator#AND}.
|
||||
*/
|
||||
@Support
|
||||
public static Condition and(Condition left, Condition right) {
|
||||
return condition(AND, left, right);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a <code>Condition</code> that connects all argument
|
||||
* <code>conditions</code> with {@link Operator#AND}.
|
||||
@ -10367,6 +10376,15 @@ public class DSL {
|
||||
return condition(AND, conditions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a <code>Condition</code> that connects all argument
|
||||
* <code>conditions</code> with {@link Operator#OR}.
|
||||
*/
|
||||
@Support
|
||||
public static Condition or(Condition left, Condition right) {
|
||||
return condition(OR, left, right);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a <code>Condition</code> that connects all argument
|
||||
* <code>conditions</code> with {@link Operator#OR}.
|
||||
@ -10385,6 +10403,15 @@ public class DSL {
|
||||
return condition(OR, conditions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a <code>Condition</code> that connects all argument
|
||||
* <code>conditions</code> with <code>Operator</code>.
|
||||
*/
|
||||
@Support
|
||||
public static Condition condition(Operator operator, Condition left, Condition right) {
|
||||
return new CombinedCondition(operator, left, right);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a <code>Condition</code> that connects all argument
|
||||
* <code>conditions</code> with <code>Operator</code>.
|
||||
|
||||
@ -2060,19 +2060,19 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
|
||||
@Override
|
||||
public final void addFrom(Collection<? extends TableLike<?>> f) {
|
||||
for (TableLike<?> provider : f) {
|
||||
for (TableLike<?> provider : f)
|
||||
getFrom().add(provider.asTable());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addFrom(TableLike<?> f) {
|
||||
addFrom(Arrays.asList(f));
|
||||
getFrom().add(f.asTable());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void addFrom(TableLike<?>... f) {
|
||||
addFrom(Arrays.asList(f));
|
||||
for (TableLike<?> provider : f)
|
||||
getFrom().add(provider.asTable());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user