Question: I have to do a refactoring in an advanced search method with 500 lines. I split this method using closures in small parts, and now I have a lot of closures but I want to invoke them dynamically. 

For example:

```
def listCriteria={ ... }
def textCriteria={ ... }
def booleanCriteria={ ... }

criteria.listDistinct {
    criteries.eachWithIndex { crit, i->
        def criteriaType="${crit.type}Criteria"
        ...
    }
}

```

How can I do that?

Answer: 
When the `J condition` is not satisfied, the cycles are

1. `Opcode fetch (4 T states)`
2. `Memory read (3 T states)` of the lower byte specified, while simultaneously checking the flag condition.

If the condition isn't satisfied, the `processor ends` this instruction cycle after these 2 machine cycles and `4+3 = 7 T states.`
Let's take ' JNZ 16-bit address ' instruction as example. 
And following code for understanding :

```
INR B           // B=03 H 
JNZ C200 H 

```

Here the condition will be true because register B is not zero. Hence 10 t-states. 

If register B =00 H then the JNZ condition will be false as it is zero. Hence 7 t- states. 

True: OF + MR + MR = 4 +3+3= 10 t states   

False: OF + MR = 4+3 =7 t states