From 202a19acbffe15e8096f7da347d714c6eecfbdf6 Mon Sep 17 00:00:00 2001 From: Mihai Emil Andronache Date: Sun, 19 Mar 2017 11:29:39 +0200 Subject: [PATCH] Automata indentation and link (#1425) * finite automata example * indentation and link --- algorithms/README.md | 1 + .../baeldung/automata/FiniteStateMachine.java | 12 +- .../automata/RtFiniteStateMachine.java | 34 ++--- .../java/com/baeldung/automata/RtState.java | 10 +- .../com/baeldung/automata/RtTransition.java | 40 +++--- .../java/com/baeldung/automata/State.java | 12 +- .../com/baeldung/automata/Transition.java | 20 +-- .../algorithms/RtFiniteStateMachineTest.java | 122 +++++++++--------- 8 files changed, 126 insertions(+), 125 deletions(-) diff --git a/algorithms/README.md b/algorithms/README.md index 77ef0209c0..a0e10246e0 100644 --- a/algorithms/README.md +++ b/algorithms/README.md @@ -3,3 +3,4 @@ - [Dijkstra Algorithm in Java](http://www.baeldung.com/java-dijkstra) - [Introduction to Cobertura](http://www.baeldung.com/cobertura) - [Ant Colony Optimization](http://www.baeldung.com/java-ant-colony-optimization) +- [Validating Input With Finite Automata in Java](http://www.baeldung.com/finite-automata-java) diff --git a/algorithms/src/main/java/com/baeldung/automata/FiniteStateMachine.java b/algorithms/src/main/java/com/baeldung/automata/FiniteStateMachine.java index cd287ce3d5..943b44fe05 100644 --- a/algorithms/src/main/java/com/baeldung/automata/FiniteStateMachine.java +++ b/algorithms/src/main/java/com/baeldung/automata/FiniteStateMachine.java @@ -5,12 +5,12 @@ package com.baeldung.automata; */ public interface FiniteStateMachine { - /** - * Follow a transition, switch the state of the machine. - * @param c Char. - * @return A new finite state machine with the new state. - */ - FiniteStateMachine switchState(final CharSequence c); + /** + * Follow a transition, switch the state of the machine. + * @param c Char. + * @return A new finite state machine with the new state. + */ + FiniteStateMachine switchState(final CharSequence c); /** * Is the current state a final one? diff --git a/algorithms/src/main/java/com/baeldung/automata/RtFiniteStateMachine.java b/algorithms/src/main/java/com/baeldung/automata/RtFiniteStateMachine.java index 7d2293bb33..090e00c73c 100644 --- a/algorithms/src/main/java/com/baeldung/automata/RtFiniteStateMachine.java +++ b/algorithms/src/main/java/com/baeldung/automata/RtFiniteStateMachine.java @@ -6,25 +6,25 @@ package com.baeldung.automata; */ public final class RtFiniteStateMachine implements FiniteStateMachine { - /** - * Current state. - */ - private State current; + /** + * Current state. + */ + private State current; - /** - * Ctor. - * @param initial Initial state of this machine. - */ - public RtFiniteStateMachine(final State initial) { - this.current = initial; - } + /** + * Ctor. + * @param initial Initial state of this machine. + */ + public RtFiniteStateMachine(final State initial) { + this.current = initial; + } - public FiniteStateMachine switchState(final CharSequence c) { - return new RtFiniteStateMachine(this.current.transit(c)); - } + public FiniteStateMachine switchState(final CharSequence c) { + return new RtFiniteStateMachine(this.current.transit(c)); + } - public boolean canStop() { - return this.current.isFinal(); - } + public boolean canStop() { + return this.current.isFinal(); + } } diff --git a/algorithms/src/main/java/com/baeldung/automata/RtState.java b/algorithms/src/main/java/com/baeldung/automata/RtState.java index 7057335f80..ba785eeff0 100644 --- a/algorithms/src/main/java/com/baeldung/automata/RtState.java +++ b/algorithms/src/main/java/com/baeldung/automata/RtState.java @@ -33,10 +33,10 @@ public final class RtState implements State { return this.isFinal; } - @Override - public State with(Transition tr) { - this.transitions.add(tr); - return this; - } + @Override + public State with(Transition tr) { + this.transitions.add(tr); + return this; + } } diff --git a/algorithms/src/main/java/com/baeldung/automata/RtTransition.java b/algorithms/src/main/java/com/baeldung/automata/RtTransition.java index f895f02e1a..560011e42a 100644 --- a/algorithms/src/main/java/com/baeldung/automata/RtTransition.java +++ b/algorithms/src/main/java/com/baeldung/automata/RtTransition.java @@ -6,26 +6,26 @@ package com.baeldung.automata; */ public final class RtTransition implements Transition { - private String rule; - private State next; - - /** - * Ctor. - * @param rule Rule that a character has to meet - * in order to get to the next state. - * @param next Next state. - */ - public RtTransition (String rule, State next) { - this.rule = rule; - this.next = next; - } - - public State state() { - return this.next; - } + private String rule; + private State next; + + /** + * Ctor. + * @param rule Rule that a character has to meet + * in order to get to the next state. + * @param next Next state. + */ + public RtTransition (String rule, State next) { + this.rule = rule; + this.next = next; + } + + public State state() { + return this.next; + } - public boolean isPossible(CharSequence c) { - return this.rule.equalsIgnoreCase(String.valueOf(c)); - } + public boolean isPossible(CharSequence c) { + return this.rule.equalsIgnoreCase(String.valueOf(c)); + } } diff --git a/algorithms/src/main/java/com/baeldung/automata/State.java b/algorithms/src/main/java/com/baeldung/automata/State.java index 25dff900d2..a25af9d03a 100644 --- a/algorithms/src/main/java/com/baeldung/automata/State.java +++ b/algorithms/src/main/java/com/baeldung/automata/State.java @@ -5,12 +5,12 @@ package com.baeldung.automata; */ public interface State { - /** - * Add a Transition to this state. - * @param tr Given transition. - * @return Modified State. - */ - State with(final Transition tr); + /** + * Add a Transition to this state. + * @param tr Given transition. + * @return Modified State. + */ + State with(final Transition tr); /** * Follow one of the transitions, to get diff --git a/algorithms/src/main/java/com/baeldung/automata/Transition.java b/algorithms/src/main/java/com/baeldung/automata/Transition.java index 9b34617aa1..d57620f911 100644 --- a/algorithms/src/main/java/com/baeldung/automata/Transition.java +++ b/algorithms/src/main/java/com/baeldung/automata/Transition.java @@ -5,16 +5,16 @@ package com.baeldung.automata; */ public interface Transition { - /** - * Is the transition possible with the given character? - * @param c char. - * @return true or false. - */ - boolean isPossible(final CharSequence c); + /** + * Is the transition possible with the given character? + * @param c char. + * @return true or false. + */ + boolean isPossible(final CharSequence c); - /** - * The state to which this transition leads. - * @return State. - */ + /** + * The state to which this transition leads. + * @return State. + */ State state(); } diff --git a/algorithms/src/test/java/algorithms/RtFiniteStateMachineTest.java b/algorithms/src/test/java/algorithms/RtFiniteStateMachineTest.java index bd867cbef9..089b38ec3f 100644 --- a/algorithms/src/test/java/algorithms/RtFiniteStateMachineTest.java +++ b/algorithms/src/test/java/algorithms/RtFiniteStateMachineTest.java @@ -9,74 +9,74 @@ import com.baeldung.automata.*; */ public final class RtFiniteStateMachineTest { - @Test + @Test public void acceptsSimplePair() { - String json = "{\"key\":\"value\"}"; - FiniteStateMachine machine = this.buildJsonStateMachine(); - for (int i=0;i