Skip to content

Package: FatalErrorNode

FatalErrorNode

nameinstructionbranchcomplexitylinemethod
FatalErrorNode(AbstractNode)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
equals(Object)
M: 0 C: 11
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
hashCode()
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
interpret(CommunicationManager)
M: 7 C: 18
72%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 2 C: 4
67%
M: 0 C: 1
100%
toString()
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

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: * Beim auftreten wird sofort abgebrochen.
12: *
13: * @author group B5
14: *
15: */
16: public class FatalErrorNode extends AbstractUnaryOperationNode {
17:         /**
18:          *
19:          * @param value
20:          * AbstractNode
21:          */
22:         public FatalErrorNode(final AbstractNode value) {
23:                 super(value);
24:         }
25:
26:         @Override
27:         public String toString() {
28:                 return PruefskriptConstants.FATALERRORTITLE + 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 FatalErrorNode;
35:
36:         }
37:
38:         @Override
39:         public int hashCode() {
40:                 return super.hashCode() + PruefskriptConstants.FATAL_ERRORNODE_HASHCODE;
41:         }
42:
43:         /**
44:          * Der Operant wird ausgewertet und falls es sich um einen String-Wert handelt, wird ein fataler
45:          * Fehler erzeugt, mit dem entsprechenden Text aus dem Operanten. Ansonsten wird eine Exception
46:          * geworfen.
47:          */
48:         @Override
49:         public VoidValue interpret(final CommunicationManager mgr) throws CheckScriptException {
50:                 final AbstractReturnValue op = this.getOperand().interpret(mgr);
51:•                if (op.isStringValue()) {
52:                         final String text = op.toStringValue().getValue();
53:                         mgr.addFatalError(text);
54:                         return new VoidValue();
55:                 } else {
56:                         throw new WrongNodeException(PruefskriptConstants.UNEXPECTED_STRING_OPERATION);
57:                 }
58:         }
59: }