[jOOQ/jOOQ#8746] Check for InvocationOrder.REVERSE instead of DEFAULT

The current implementation is checking if a given InvocationOrder setting is the DEFAULT. We should better check the inverse, if it is REVERSE and act accordingly. That way, both DEFAULT and null have the DEFAULT behaviour.
This commit is contained in:
Lukas Eder 2019-06-19 15:49:38 +02:00
parent f79055b2cb
commit e97a96396b
4 changed files with 17 additions and 16 deletions

View File

@ -44,6 +44,7 @@ import static java.lang.Boolean.TRUE;
// ...
// ...
// ...
import static org.jooq.conf.InvocationOrder.REVERSE;
import static org.jooq.conf.ParamType.INDEXED;
import static org.jooq.impl.Tools.EMPTY_CLAUSE;
import static org.jooq.impl.Tools.EMPTY_QUERYPART;
@ -75,7 +76,6 @@ import org.jooq.Table;
import org.jooq.VisitContext;
import org.jooq.VisitListener;
import org.jooq.VisitListenerProvider;
import org.jooq.conf.InvocationOrder;
import org.jooq.conf.ParamCastMode;
import org.jooq.conf.ParamType;
import org.jooq.conf.Settings;
@ -156,10 +156,10 @@ abstract class AbstractContext<C extends Context<C>> extends AbstractScope imple
this.visitParts = new ArrayDeque<QueryPart>();
this.visitClauses = new ArrayDeque<Clause>();
this.visitListenersStart = configuration.settings().getVisitListenerStartInvocationOrder() == InvocationOrder.DEFAULT
this.visitListenersStart = configuration.settings().getVisitListenerStartInvocationOrder() != REVERSE
? visitListeners
: Tools.reverse(visitListeners.clone());
this.visitListenersEnd = configuration.settings().getVisitListenerEndInvocationOrder() == InvocationOrder.DEFAULT
this.visitListenersEnd = configuration.settings().getVisitListenerEndInvocationOrder() != REVERSE
? visitListeners
: Tools.reverse(visitListeners.clone());
}

View File

@ -38,6 +38,7 @@
package org.jooq.impl;
import static java.lang.Boolean.FALSE;
import static org.jooq.conf.InvocationOrder.REVERSE;
import static org.jooq.impl.Tools.EMPTY_EXECUTE_LISTENER;
import java.util.ArrayList;
@ -46,7 +47,6 @@ import java.util.List;
import org.jooq.ExecuteContext;
import org.jooq.ExecuteListener;
import org.jooq.ExecuteListenerProvider;
import org.jooq.conf.InvocationOrder;
import org.jooq.conf.Settings;
import org.jooq.conf.SettingsTools;
import org.jooq.tools.JooqLogger;
@ -119,8 +119,8 @@ final class ExecuteListeners implements ExecuteListener {
ExecuteListener[] rev = null;
return new ExecuteListener[][] {
ctx.settings().getExecuteListenerStartInvocationOrder() == InvocationOrder.DEFAULT ? def : ( rev = Tools.reverse(def.clone())),
ctx.settings().getExecuteListenerEndInvocationOrder() == InvocationOrder.DEFAULT ? def : (rev != null ? rev : (rev = Tools.reverse(def.clone())))
ctx.settings().getExecuteListenerStartInvocationOrder() != REVERSE ? def : ( rev = Tools.reverse(def.clone())),
ctx.settings().getExecuteListenerEndInvocationOrder() != REVERSE ? def : (rev != null ? rev : (rev = Tools.reverse(def.clone())))
};
}

View File

@ -39,6 +39,7 @@ package org.jooq.impl;
import static org.jooq.ExecuteType.READ;
import static org.jooq.ExecuteType.WRITE;
import static org.jooq.conf.InvocationOrder.REVERSE;
import static org.jooq.impl.RecordDelegate.RecordLifecycleType.LOAD;
import static org.jooq.impl.RecordDelegate.RecordLifecycleType.REFRESH;
import static org.jooq.impl.Tools.attachRecords;
@ -50,7 +51,6 @@ import org.jooq.ExecuteType;
import org.jooq.Record;
import org.jooq.RecordListener;
import org.jooq.RecordListenerProvider;
import org.jooq.conf.InvocationOrder;
import org.jooq.exception.ControlFlowSignal;
/**
@ -104,7 +104,7 @@ final class RecordDelegate<R extends Record> {
if (listeners != null) {
for (RecordListener listener : (
ctx == null || ctx.settings().getRecordListenerStartInvocationOrder() == InvocationOrder.DEFAULT
ctx == null || ctx.settings().getRecordListenerStartInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners)
)) {
@ -148,7 +148,7 @@ final class RecordDelegate<R extends Record> {
if (listeners != null) {
for (RecordListener listener : (
ctx == null || ctx.settings().getRecordListenerEndInvocationOrder() == InvocationOrder.DEFAULT
ctx == null || ctx.settings().getRecordListenerEndInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners)
)) {

View File

@ -37,13 +37,14 @@
*/
package org.jooq.impl;
import static org.jooq.conf.InvocationOrder.REVERSE;
import java.util.Arrays;
import org.jooq.Configuration;
import org.jooq.TransactionContext;
import org.jooq.TransactionListener;
import org.jooq.TransactionListenerProvider;
import org.jooq.conf.InvocationOrder;
/**
* @author Lukas Eder
@ -62,7 +63,7 @@ class TransactionListeners implements TransactionListener {
@Override
public final void beginStart(TransactionContext ctx) {
for (TransactionListener listener : ctx.settings().getTransactionListenerStartInvocationOrder() == InvocationOrder.DEFAULT
for (TransactionListener listener : ctx.settings().getTransactionListenerStartInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners))
listener.beginStart(ctx);
@ -70,7 +71,7 @@ class TransactionListeners implements TransactionListener {
@Override
public final void beginEnd(TransactionContext ctx) {
for (TransactionListener listener : ctx.settings().getTransactionListenerEndInvocationOrder() == InvocationOrder.DEFAULT
for (TransactionListener listener : ctx.settings().getTransactionListenerEndInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners))
listener.beginEnd(ctx);
@ -78,7 +79,7 @@ class TransactionListeners implements TransactionListener {
@Override
public final void commitStart(TransactionContext ctx) {
for (TransactionListener listener : ctx.settings().getTransactionListenerStartInvocationOrder() == InvocationOrder.DEFAULT
for (TransactionListener listener : ctx.settings().getTransactionListenerStartInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners))
listener.commitStart(ctx);
@ -86,7 +87,7 @@ class TransactionListeners implements TransactionListener {
@Override
public final void commitEnd(TransactionContext ctx) {
for (TransactionListener listener : ctx.settings().getTransactionListenerEndInvocationOrder() == InvocationOrder.DEFAULT
for (TransactionListener listener : ctx.settings().getTransactionListenerEndInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners))
listener.commitEnd(ctx);
@ -94,7 +95,7 @@ class TransactionListeners implements TransactionListener {
@Override
public final void rollbackStart(TransactionContext ctx) {
for (TransactionListener listener : ctx.settings().getTransactionListenerStartInvocationOrder() == InvocationOrder.DEFAULT
for (TransactionListener listener : ctx.settings().getTransactionListenerStartInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners))
listener.rollbackStart(ctx);
@ -102,7 +103,7 @@ class TransactionListeners implements TransactionListener {
@Override
public final void rollbackEnd(TransactionContext ctx) {
for (TransactionListener listener : ctx.settings().getTransactionListenerEndInvocationOrder() == InvocationOrder.DEFAULT
for (TransactionListener listener : ctx.settings().getTransactionListenerEndInvocationOrder() != REVERSE
? Arrays.asList(listeners)
: Tools.reverseIterable(listeners))
listener.rollbackEnd(ctx);