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 import java.util.ArrayList; 008 import java.util.List; 009 010 /** 011 * A JavaScript switch statement. 012 */ 013 public class JsSwitch extends SourceInfoAwareJsNode implements JsStatement { 014 015 private final List<JsSwitchMember> cases = new ArrayList<JsSwitchMember>(); 016 private JsExpression expression; 017 018 public JsSwitch() { 019 super(); 020 } 021 022 public List<JsSwitchMember> getCases() { 023 return cases; 024 } 025 026 public JsExpression getExpression() { 027 return expression; 028 } 029 030 public void setExpression(JsExpression expression) { 031 this.expression = expression; 032 } 033 034 @Override 035 public void accept(JsVisitor v) { 036 v.visit(this); 037 } 038 039 @Override 040 public void acceptChildren(JsVisitor visitor) { 041 visitor.accept(expression); 042 visitor.acceptWithInsertRemove(cases); 043 } 044 }