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 com.intellij.util.SmartList; 008 009 import java.util.List; 010 011 public final class JsObjectLiteral extends JsLiteral { 012 private final List<JsPropertyInitializer> properties; 013 014 private final boolean multiline; 015 016 public JsObjectLiteral() { 017 this(new SmartList<JsPropertyInitializer>()); 018 } 019 020 public JsObjectLiteral(boolean multiline) { 021 this(new SmartList<JsPropertyInitializer>(), multiline); 022 } 023 024 public boolean isMultiline() { 025 return multiline; 026 } 027 028 public JsObjectLiteral(List<JsPropertyInitializer> properties) { 029 this(properties, false); 030 } 031 032 public JsObjectLiteral(List<JsPropertyInitializer> properties, boolean multiline) { 033 this.properties = properties; 034 this.multiline = multiline; 035 } 036 037 public List<JsPropertyInitializer> getPropertyInitializers() { 038 return properties; 039 } 040 041 @Override 042 public void accept(JsVisitor v) { 043 v.visitObjectLiteral(this); 044 } 045 046 @Override 047 public void acceptChildren(JsVisitor visitor) { 048 visitor.acceptWithInsertRemove(properties); 049 } 050 }