Skip to content

Method: LineNode(AbstractNode)

1: package pruefskript.parser.nodes;
2:
3: import basic.PruefskriptConstants;
4: import pruefskript.CommunicationManager;
5: import pruefskript.parser.exceptions.CheckScriptException;
6: import pruefskript.parser.exceptions.WrongNodeException;
7: import pruefskript.parser.values.AbstractReturnValue;
8: import pruefskript.parser.values.VoidValue;
9:
10: /**
11: *
12: * @author Phil
13: *
14: */
15: public class LineNode extends AbstractUnaryOperationNode {
16:
17:         /**
18:          *
19:          * @param operand
20:          * AbstractNode
21:          */
22:         public LineNode(final AbstractNode operand) {
23:                 super(operand);
24:         }
25:
26:         @Override
27:         public String toString() {
28:                 return PruefskriptConstants.LINETITLE + PruefskriptConstants.BRACKET_OPEN
29:                                 + super.toString() + PruefskriptConstants.BRACKET_CLOSE;
30:         }
31:
32:         @Override
33:         public boolean equals(final Object obj) {
34:                 return super.equals(obj) && obj instanceof LineNode;
35:
36:         }
37:
38:         @Override
39:         public int hashCode() {
40:                 return super.hashCode() + PruefskriptConstants.LINENODE_HASHCODE;
41:         }
42:
43:         @Override
44:         public VoidValue interpret(final CommunicationManager mgr) throws CheckScriptException {
45:                 final AbstractReturnValue op = this.getOperand().interpret(mgr);
46:                 if (op.isVoidValue()) {
47:                         return op.toVoidValue();
48:                 } else {
49:                         throw new WrongNodeException(PruefskriptConstants.UNEXPECTED_VOID_OPERATION);
50:                 }
51:         }
52: }