Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
Rhino JavaScript Java Library Source Code
Rhino JavaScript Java Library is an open-source implementation of JavaScript
written entirely in Java.
Rhino JavaScript Java Library Source Code files are provided in binary package (rhino-1.7.14.zip).
You can also browse the source code below:
✍: FYIcenter.com
⏎ org/mozilla/javascript/ast/SwitchStatement.java
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.javascript.ast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.mozilla.javascript.Token;
/**
* Switch statement AST node type.
* Node type is {@link Token#SWITCH}.
*
* <pre><i>SwitchStatement</i> :
* <b>switch</b> ( Expression ) CaseBlock
* <i>CaseBlock</i> :
* { [CaseClauses] }
* { [CaseClauses] DefaultClause [CaseClauses] }
* <i>CaseClauses</i> :
* CaseClause
* CaseClauses CaseClause
* <i>CaseClause</i> :
* <b>case</b> Expression : [StatementList]
* <i>DefaultClause</i> :
* <b>default</b> : [StatementList]</pre>
*/
public class SwitchStatement extends Jump {
private static final List<SwitchCase> NO_CASES =
Collections.unmodifiableList(new ArrayList<SwitchCase>());
private AstNode expression;
private List<SwitchCase> cases;
private int lp = -1;
private int rp = -1;
{
type = Token.SWITCH;
}
public SwitchStatement() {
}
public SwitchStatement(int pos) {
// can't call super (Jump) for historical reasons
position = pos;
}
public SwitchStatement(int pos, int len) {
position = pos;
length = len;
}
/**
* Returns the switch discriminant expression
*/
public AstNode getExpression() {
return expression;
}
/**
* Sets the switch discriminant expression, and sets its parent
* to this node.
* @throws IllegalArgumentException} if expression is {@code null}
*/
public void setExpression(AstNode expression) {
assertNotNull(expression);
this.expression = expression;
expression.setParent(this);
}
/**
* Returns case statement list. If there are no cases,
* returns an immutable empty list.
*/
public List<SwitchCase> getCases() {
return cases != null ? cases : NO_CASES;
}
/**
* Sets case statement list, and sets the parent of each child
* case to this node.
* @param cases list, which may be {@code null} to remove all the cases
*/
public void setCases(List<SwitchCase> cases) {
if (cases == null) {
this.cases = null;
} else {
if (this.cases != null)
this.cases.clear();
for (SwitchCase sc : cases)
addCase(sc);
}
}
/**
* Adds a switch case statement to the end of the list.
* @throws IllegalArgumentException} if switchCase is {@code null}
*/
public void addCase(SwitchCase switchCase) {
assertNotNull(switchCase);
if (cases == null) {
cases = new ArrayList<SwitchCase>();
}
cases.add(switchCase);
switchCase.setParent(this);
}
/**
* Returns left paren position, -1 if missing
*/
public int getLp() {
return lp;
}
/**
* Sets left paren position
*/
public void setLp(int lp) {
this.lp = lp;
}
/**
* Returns right paren position, -1 if missing
*/
public int getRp() {
return rp;
}
/**
* Sets right paren position
*/
public void setRp(int rp) {
this.rp = rp;
}
/**
* Sets both paren positions
*/
public void setParens(int lp, int rp) {
this.lp = lp;
this.rp = rp;
}
@Override
public String toSource(int depth) {
String pad = makeIndent(depth);
StringBuilder sb = new StringBuilder();
sb.append(pad);
sb.append("switch (");
sb.append(expression.toSource(0));
sb.append(") {\n");
if (cases != null) {
for (SwitchCase sc : cases) {
sb.append(sc.toSource(depth + 1));
}
}
sb.append(pad);
sb.append("}\n");
return sb.toString();
}
/**
* Visits this node, then the switch-expression, then the cases
* in lexical order.
*/
@Override
public void visit(NodeVisitor v) {
if (v.visit(this)) {
expression.visit(v);
for (SwitchCase sc: getCases()) {
sc.visit(v);
}
}
}
}
⏎ org/mozilla/javascript/ast/SwitchStatement.java
Or download all of them as a single archive file:
File name: rhino-1.7.14-sources.jar File size: 1029165 bytes Release date: 2022-01-06 Download
⇒ Example code to Test rhino-runtime-1.7.14.jar
⇐ Download Rhino JavaScript Binary Package
2022-05-03, ≈136🔥, 1💬
Popular Posts:
JDK 11 jdk.crypto.mscapi.jmod is the JMOD file for JDK 11 Crypto MSCAPI module. JDK 11 Crypto MSCAPI...
JDK 11 jdk.internal.vm.ci.jmod is the JMOD file for JDK 11 Internal VM CI module. JDK 11 Internal VM...
What Is javaws.jar in JRE (Java Runtime Environment) 8? javaws.jar in JRE (Java Runtime Environment)...
Where to get the Java source code for Connector/J 8.0 User Impl module? Java source code files for C...
Apache Log4j 1.2 Bridge allows applications coded to use Log4j 1.2 API to use Log4j 2 instead. Bytec...