Skip to content

Package: IDNode

IDNode

nameinstructionbranchcomplexitylinemethod
IDNode(String)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
equals(Object)
M: 0 C: 14
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getName()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
hashCode()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
interpret(CommunicationManager)
M: 13 C: 31
70%
M: 3 C: 5
63%
M: 2 C: 3
60%
M: 3 C: 8
73%
M: 0 C: 1
100%
isIDNode()
M: 0 C: 2
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
toIDNode()
M: 0 C: 2
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
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: 1
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.VariableDoesNotExistException;
6: import pruefskript.parser.exceptions.WrongNodeException;
7: import pruefskript.parser.values.AbstractReturnValue;
8:
9: /**
10: * IDNode.
11: *
12: * @author Group B5
13: *
14: */
15: public class IDNode extends AbstractNode {
16:         /**
17:          * final String Attribut value.
18:          */
19:         private final String value;
20:
21:         /**
22:          * IDNode.
23:          *
24:          * @param value
25:          * String
26:          */
27:         public IDNode(final String value) {
28:                 super();
29:                 this.value = value;
30:         }
31:
32:         @Override
33:         public String toString() {
34:                 return PruefskriptConstants.IDNODETITLE + PruefskriptConstants.BRACKET_OPEN + this.value
35:                                 + PruefskriptConstants.BRACKET_CLOSE;
36:         }
37:
38:         @Override
39:         public boolean equals(final Object obj) {
40:•                return obj instanceof IDNode && ((IDNode) obj).value.equals(this.value);
41:
42:         }
43:
44:         @Override
45:         public int hashCode() {
46:                 return this.value.hashCode();
47:         }
48:
49:         /**
50:          * Zunaechst wird der Wert der AssigntmentVariable in einer temporaeren tempValue-Variable
51:          * gespeichert. Fuer tempValue werden die verschiedenen Typen String, numerisch, Version und
52:          * Boolean ueberprueft und jeweils als Ergebnis zurueckgegeben. Handelt es sich um keinen dieser
53:          * Typen, wird eine Exception geworfen.
54:          */
55:         @Override
56:         public AbstractReturnValue interpret(final CommunicationManager mgr)
57:                         throws WrongNodeException, VariableDoesNotExistException {
58:                 final AbstractReturnValue result;
59:                 final AbstractReturnValue tempValue = mgr.getVariableAssignmentValue(this.value);
60:•                if (tempValue.isStringValue()) {
61:                         result = tempValue.toStringValue();
62:•                } else if (tempValue.isNumericValue()) {
63:                         result = tempValue.toNumericValue();
64:•                } else if (tempValue.isVersionValue()) {
65:                         result = tempValue.toVersionValue();
66:•                } else if (tempValue.isBooleanValue()) {
67:                         result = tempValue.toBooleanValue();
68:                 } else {
69:                         throw new WrongNodeException(PruefskriptConstants.NO_NUM_VER_STRING_BOOL_TYP);
70:                 }
71:                 return result;
72:         }
73:
74:         /**
75:          *
76:          * @return value
77:          */
78:         public String getName() {
79:                 return this.value;
80:         }
81:
82:         @Override
83:         public Boolean isIDNode() {
84:                 return Boolean.TRUE;
85:         }
86:
87:         @Override
88:         public IDNode toIDNode() throws WrongNodeException {
89:                 return this;
90:         }
91: }