Skip to content

Method: AddToOptNode(AbstractNode)

1: package pruefskript.parser.nodes;
2:
3: import java.io.FileNotFoundException;
4:
5: import basic.PruefskriptConstants;
6: import pruefskript.CommunicationManager;
7: import pruefskript.parser.exceptions.AddToOptException;
8: import pruefskript.parser.exceptions.CheckScriptException;
9: import pruefskript.parser.exceptions.WrongNodeException;
10: import pruefskript.parser.values.VoidValue;
11:
12: /**
13: * Mit Hilfe von AddToOptNode koennen Dateien an das opt-Archiv angehaengt werden.
14: *
15: * @author Phil
16: *
17: */
18: public class AddToOptNode extends AbstractBinaryOperationNode {
19:
20:         /**
21:          * Default sind die flags leer.
22:          *
23:          * @param operand
24:          * AbstractNode
25:          */
26:         public AddToOptNode(final AbstractNode operand) {
27:                 super(operand, new StringNode(""));
28:         }
29:
30:         /**
31:          *
32:          * @param operand1
33:          * AbstractNode
34:          * @param operand2
35:          * AbstractNode
36:          */
37:         public AddToOptNode(final AbstractNode operand1, final AbstractNode operand2) {
38:                 super(operand1, operand2);
39:         }
40:
41:         @Override
42:         public String toString() {
43:                 return PruefskriptConstants.ADDTOOPTTITLE + PruefskriptConstants.BRACKET_OPEN
44:                                 + super.toString() + PruefskriptConstants.BRACKET_CLOSE;
45:         }
46:
47:         @Override
48:         public boolean equals(final Object obj) {
49:                 return super.equals(obj) && obj instanceof AddToOptNode;
50:
51:         }
52:
53:         @Override
54:         public int hashCode() {
55:                 return super.hashCode() + PruefskriptConstants.ADD_TO_OPTNODE_HASHCODE;
56:         }
57:
58:         @Override
59:         public VoidValue interpret(final CommunicationManager mgr) throws CheckScriptException {
60:                 if (this.getOperand1().interpret(mgr).isStringValue()
61:                                 && this.getOperand2().interpret(mgr).isStringValue()) {
62:                         final AddToOptFacade facade = new AddToOptFacade(mgr, this);
63:                         try {
64:                                 mgr.getRouterConfiguration().getArchGen().addToOpt(facade);
65:                         } catch (final FileNotFoundException e) {
66:                                 throw new AddToOptException(e);
67:                         }
68:                         return new VoidValue();
69:                 } else {
70:                         throw new WrongNodeException(PruefskriptConstants.UNEXPECTED_STRING);
71:                 }
72:         }
73: }