Skip to content

Package: DependsNode

DependsNode

nameinstructionbranchcomplexitylinemethod
DependsNode(AbstractNode, AbstractNode)
M: 0 C: 5
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: 0 C: 37
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 8
100%
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: * Mit DependsNode kann man eine Abhaengigkeit zu einem anderen Paket herstellen.
12: *
13: * @author Phil
14: *
15: */
16: public class DependsNode extends AbstractBinaryOperationNode {
17:         /**
18:          *
19:          * @param operand1
20:          * AbstractNode
21:          * @param operand2
22:          * AbstractNode
23:          */
24:         public DependsNode(final AbstractNode operand1, final AbstractNode operand2) {
25:                 super(operand1, operand2);
26:         }
27:
28:         @Override
29:         public String toString() {
30:                 return PruefskriptConstants.DEPENDSTITLE + PruefskriptConstants.BRACKET_OPEN
31:                                 + super.toString() + PruefskriptConstants.BRACKET_CLOSE;
32:         }
33:
34:         @Override
35:         public boolean equals(final Object obj) {
36:•                return super.equals(obj) && obj instanceof DependsNode;
37:
38:         }
39:
40:         @Override
41:         public int hashCode() {
42:                 return super.hashCode() + PruefskriptConstants.DEPENDSNODE_HASHCODE;
43:         }
44:
45:         @Override
46:         public VoidValue interpret(final CommunicationManager mgr) throws CheckScriptException {
47:                 final AbstractReturnValue op2 = this.getOperand2().interpret(mgr);
48:•                if (this.getOperand1().isIDNode() && op2.isVersionValue()) {
49:                         final String id = this.getOperand1().toIDNode().getName();
50:                         final String version = op2.toVersionValue().getValue();
51:                         mgr.addDependsList(id, version);
52:                 } else {
53:                         throw new WrongNodeException(PruefskriptConstants.UNEXPECTED_STRING_OPERATION);
54:                 }
55:
56:                 return new VoidValue();
57:         }
58: }