| 123456789101112131415161718192021222324252627282930 |
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
-
- final class HandshakeCalculator {
-
- private static final int REVERSE_SIGNALS_BIT_POSITION = 4;
-
- List<Signal> calculateHandshake(final int number) {
- final List<Signal> result = new ArrayList<>();
-
- for (final Signal signal : Signal.values()) {
- if (isBitSet(signal.ordinal(), number)) {
- result.add(signal);
- }
- }
-
- if (isBitSet(REVERSE_SIGNALS_BIT_POSITION, number)) {
- Collections.reverse(result);
- }
-
- return result;
- }
-
- private boolean isBitSet(final int position, final int number) {
- return ((number >> position) & 1) == 1;
- }
-
- }
|