Skip to content

Method: AssignmentValueState()

1: package parser.states.assignmentstates;
2:
3: import model.RouterConfiguration;
4: import parser.AssignmentFileParser;
5: import parser.ParserException;
6: import parser.tempparserobjects.TempVariableAssignment;
7: import symbols.AbstractSymbol;
8: import symbols.StringSymbol;
9: import basic.Buffer;
10:
11: /**
12: *
13: * @author Muri
14: *
15: */
16: public class AssignmentValueState extends AbstractAssignmentState {
17:
18:         /**
19:          *
20:          * @param tVA
21:          * TempVariableAssignment
22:          * @param buffer
23:          * Buffer<Symbol>
24:          * @param aFP
25:          * AssignmentFileParser
26:          * @throws InterruptedException
27:          * InterruptedException
28:          * @return
29:          * @throws ParserException
30:          * ParserException
31:          */
32:         @Override
33:         public void parse(final RouterConfiguration rc, final TempVariableAssignment tVA,
34:                         final Buffer<AbstractSymbol> buffer, final AssignmentFileParser aFP)
35:                         throws InterruptedException, ParserException {
36:                 final AbstractSymbol nextSymbol = buffer.peek();
37:                 if (nextSymbol instanceof StringSymbol) {
38:                         tVA.setValue(((StringSymbol) nextSymbol).getText());
39:                         tVA.setReady(true);
40:                         buffer.remove();
41:                         aFP.setState(new AssignmentInitialState());
42:                 } else {
43:                         throw new ParserException("no valid symbol: "
44:                                         + buffer.peek().getClass().getCanonicalName() + " expected StringSymbol");
45:                 }
46:         }
47: }