Skip to content

Method: create(StateMatcher, InputMatcher, StateCreater)

1: package de.fhdw.wtf.dsl.scanner.common;
2:
3: import de.fhdw.wtf.common.token.Position;
4:
5: /**
6: * {@link Delta} were the next {@link ScannerState} is created via {@link StateCreater}.
7: *
8: * @see Delta
9: */
10: public class CreatingDelta extends Delta {
11:         
12:         /**
13:          * Next {@link StateCreater}.
14:          */
15:         private final StateCreater nextStateCreater;
16:         
17:         /**
18:          * Constructor of {@link CreatingDelta}.
19:          *
20:          * @param fromStateMatcher
21:          * fromStateMatcher
22:          * @param inputMatcher
23:          * inputMatcher
24:          * @param nextStateCreater
25:          * nextStateCreater
26:          */
27:         public CreatingDelta(final StateMatcher fromStateMatcher,
28:                         final InputMatcher inputMatcher,
29:                         final StateCreater nextStateCreater) {
30:                 super(fromStateMatcher, inputMatcher);
31:                 this.nextStateCreater = nextStateCreater;
32:         }
33:         
34:         /**
35:          * Returns the next {@link StateCreater}.
36:          *
37:          * @return next {@link StateCreater}
38:          */
39:         public StateCreater getNextStateCreater() {
40:                 return this.nextStateCreater;
41:         }
42:         
43:         @Override
44:         public ScannerState getNextScannerState(final Position position, final ScannerState currentState) {
45:                 return this.getNextStateCreater().create(position);
46:         }
47:         
48:         /**
49:          * Factory-Method for {@link CreatingDelta}.
50:          *
51:          * @param fromStateMatcher
52:          * fromStateMatcher
53:          * @param inputMatcher
54:          * inputMatcher
55:          * @param nextStateCreater
56:          * nextStateCreater
57:          * @return The {@link CreatingDelta}-Object.
58:          */
59:         public static CreatingDelta create(final StateMatcher fromStateMatcher,
60:                         final InputMatcher inputMatcher,
61:                         final StateCreater nextStateCreater) {
62:                 return new CreatingDelta(fromStateMatcher, inputMatcher, nextStateCreater);
63:         }
64: }