org.glassfish.pfl.dynamic.codegen.impl.SwitchStatement Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pfl-dynamic Show documentation
Show all versions of pfl-dynamic Show documentation
Functionality that may include class generation
/*
* Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.glassfish.pfl.dynamic.codegen.impl;
import java.util.Map ;
import java.util.LinkedHashMap ;
import org.glassfish.pfl.dynamic.codegen.impl.ExpressionInternal ;
import org.glassfish.pfl.dynamic.codegen.impl.StatementBase ;
/**
*
* @author Ken Cavanaugh
*/
public final class SwitchStatement extends StatementBase {
// Note that this map must maintain insertion order!
private Map cases ;
private BlockStatement defaultCase ;
private ExpressionInternal expr ;
public Map cases() {
return cases ;
}
public BlockStatement defaultCase() {
return defaultCase ;
}
public ExpressionInternal expr() {
return expr ;
}
SwitchStatement( Node parent, ExpressionInternal expr ) {
super( parent ) ;
this.expr = expr ;
cases = new LinkedHashMap() ;
defaultCase = new BlockStatement( this ) ;
}
public CaseBranch addCase( int value ) {
if (cases.containsKey( value ))
throw new IllegalArgumentException( "Switch already contains case " +
value ) ;
CaseBranch stmt = new CaseBranch( this, value ) ;
cases.put( value, stmt ) ;
return stmt ;
}
public void accept( Visitor visitor ) {
visitor.visitSwitchStatement( this ) ;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy