Skip to content

Package: SubnetNode

SubnetNode

nameinstructionbranchcomplexitylinemethod
SubnetNode(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: 63
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 11
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 org.apache.commons.net.util.SubnetUtils;
4:
5: import basic.PruefskriptConstants;
6: import pruefskript.CommunicationManager;
7: import pruefskript.parser.exceptions.CheckScriptException;
8: import pruefskript.parser.exceptions.WrongNodeException;
9: import pruefskript.parser.values.AbstractReturnValue;
10: import pruefskript.parser.values.BooleanValue;
11:
12: /**
13: * SubnetNode.
14: *
15: * @author Phil
16: *
17: */
18:
19: public class SubnetNode extends AbstractBinaryOperationNode {
20:         /**
21:          * SubnetNode.
22:          *
23:          * @param operand1
24:          * AbstractNode
25:          * @param operand2
26:          * AbstractNode
27:          */
28:         public SubnetNode(final AbstractNode operand1, final AbstractNode operand2) {
29:                 super(operand1, operand2);
30:         }
31:
32:         @Override
33:         public String toString() {
34:                 return PruefskriptConstants.SUBNETNODETITLE + PruefskriptConstants.BRACKET_OPEN
35:                                 + super.toString() + PruefskriptConstants.BRACKET_CLOSE;
36:         }
37:
38:         @Override
39:         public boolean equals(final Object obj) {
40:•                return super.equals(obj) && obj instanceof SubnetNode;
41:
42:         }
43:
44:         @Override
45:         public int hashCode() {
46:                 return super.hashCode() + PruefskriptConstants.SUBNETNODE_HASHCODE;
47:         }
48:
49:         @Override
50:         public BooleanValue interpret(final CommunicationManager mgr) throws CheckScriptException {
51:                 final AbstractReturnValue op1 = this.getOperand1().interpret(mgr);
52:                 final AbstractReturnValue op2 = this.getOperand2().interpret(mgr);
53:•                if (op1.isStringValue() && op2.isStringValue()) {
54:                         final String net =
55:                                         new SubnetUtils(op2.toStringValue().getValue()).getInfo().getNetworkAddress();
56:                         final String mask =
57:                                         new SubnetUtils(op2.toStringValue().getValue()).getInfo().getNetmask();
58:                         final String ip =
59:                                         new SubnetUtils(op1.toStringValue().getValue()).getInfo().getAddress();
60:                         return new BooleanValue(new SubnetUtils(net, mask).getInfo().isInRange(ip));
61:                 } else {
62:                         throw new WrongNodeException(PruefskriptConstants.UNEXPECTED_STRING_OPERATION);
63:                 }
64:
65:         }
66: }