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, ≈203🔥, 1💬
Popular Posts:
Apache Log4j 1.2 Bridge allows applications coded to use Log4j 1.2 API to use Log4j 2 instead. Bytec...
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java"....
What JAR files are required to run dom\Counter.java provided in the Apache Xerces package? You can f...
JRE 8 plugin.jar is the JAR file for JRE 8 Java Control Panel Plugin interface and tools. JRE (Java ...
How to compare performances of various XML parsers with the jaxp\SourceValidator.jav aprovided in th...