001    // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
002    // for details. All rights reserved. Use of this source code is governed by a
003    // BSD-style license that can be found in the LICENSE file.
004    
005    package com.google.dart.compiler.backend.js.ast;
006    
007    public final class JsConditional extends JsExpressionImpl {
008        private JsExpression testExpression;
009        private JsExpression elseExpression;
010        private JsExpression thenExpression;
011    
012        public JsConditional() {
013        }
014    
015        public JsConditional(JsExpression testExpression, JsExpression thenExpression, JsExpression elseExpression) {
016            this.testExpression = testExpression;
017            this.thenExpression = thenExpression;
018            this.elseExpression = elseExpression;
019        }
020    
021        public JsExpression getElseExpression() {
022            return elseExpression;
023        }
024    
025        public JsExpression getTestExpression() {
026            return testExpression;
027        }
028    
029        public JsExpression getThenExpression() {
030            return thenExpression;
031        }
032    
033        public void setElseExpression(JsExpression elseExpression) {
034            this.elseExpression = elseExpression;
035        }
036    
037        public void setTestExpression(JsExpression testExpression) {
038            this.testExpression = testExpression;
039        }
040    
041        public void setThenExpression(JsExpression thenExpression) {
042            this.thenExpression = thenExpression;
043        }
044    
045        @Override
046        public void accept(JsVisitor v) {
047            v.visitConditional(this);
048        }
049    
050        @Override
051        public void acceptChildren(JsVisitor visitor) {
052            visitor.accept(testExpression);
053            visitor.accept(thenExpression);
054            visitor.accept(elseExpression);
055        }
056    }