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:
JDK 17 java.xml.jmod - XML Module
JDK 17 java.xml.jmod is the JMOD file for JDK 17 XML (eXtensible Markup Language) module.
JDK 17 XML module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.xml.jmod.
JDK 17 XML module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 XML module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.xml.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/org/apache/bcel/internal/generic/SWITCH.java
/*
* Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.sun.org.apache.bcel.internal.generic;
/**
* SWITCH - Branch depending on int value, generates either LOOKUPSWITCH or
* TABLESWITCH instruction, depending on whether the match values (int[]) can be
* sorted with no gaps between the numbers.
*
*/
public final class SWITCH implements CompoundInstruction {
private int[] match;
private InstructionHandle[] targets;
private Select instruction;
private int matchLength;
/**
* Template for switch() constructs. If the match array can be
* sorted in ascending order with gaps no larger than max_gap
* between the numbers, a TABLESWITCH instruction is generated, and
* a LOOKUPSWITCH otherwise. The former may be more efficient, but
* needs more space.
*
* Note, that the key array always will be sorted, though we leave
* the original arrays unaltered.
*
* @param match array of match values (case 2: ... case 7: ..., etc.)
* @param targets the instructions to be branched to for each case
* @param target the default target
* @param max_gap maximum gap that may between case branches
*/
public SWITCH(final int[] match, final InstructionHandle[] targets, final InstructionHandle target, final int max_gap) {
this.match = match.clone();
this.targets = targets.clone();
if ((matchLength = match.length) < 2) {
instruction = new TABLESWITCH(match, targets, target);
} else {
sort(0, matchLength - 1);
if (matchIsOrdered(max_gap)) {
fillup(max_gap, target);
instruction = new TABLESWITCH(this.match, this.targets, target);
} else {
instruction = new LOOKUPSWITCH(this.match, this.targets, target);
}
}
}
public SWITCH(final int[] match, final InstructionHandle[] targets, final InstructionHandle target) {
this(match, targets, target, 1);
}
private void fillup( final int max_gap, final InstructionHandle target ) {
final int max_size = matchLength + matchLength * max_gap;
final int[] m_vec = new int[max_size];
final InstructionHandle[] t_vec = new InstructionHandle[max_size];
int count = 1;
m_vec[0] = match[0];
t_vec[0] = targets[0];
for (int i = 1; i < matchLength; i++) {
final int prev = match[i - 1];
final int gap = match[i] - prev;
for (int j = 1; j < gap; j++) {
m_vec[count] = prev + j;
t_vec[count] = target;
count++;
}
m_vec[count] = match[i];
t_vec[count] = targets[i];
count++;
}
match = new int[count];
targets = new InstructionHandle[count];
System.arraycopy(m_vec, 0, match, 0, count);
System.arraycopy(t_vec, 0, targets, 0, count);
}
/**
* Sort match and targets array with QuickSort.
*/
private void sort( final int l, final int r ) {
int i = l;
int j = r;
int h;
final int m = match[(l + r) >>> 1];
InstructionHandle h2;
do {
while (match[i] < m) {
i++;
}
while (m < match[j]) {
j--;
}
if (i <= j) {
h = match[i];
match[i] = match[j];
match[j] = h; // Swap elements
h2 = targets[i];
targets[i] = targets[j];
targets[j] = h2; // Swap instructions, too
i++;
j--;
}
} while (i <= j);
if (l < j) {
sort(l, j);
}
if (i < r) {
sort(i, r);
}
}
/**
* @return match is sorted in ascending order with no gap bigger than max_gap?
*/
private boolean matchIsOrdered( final int max_gap ) {
for (int i = 1; i < matchLength; i++) {
if (match[i] - match[i - 1] > max_gap) {
return false;
}
}
return true;
}
@Override
public InstructionList getInstructionList() {
return new InstructionList(instruction);
}
public Instruction getInstruction() {
return instruction;
}
}
⏎ com/sun/org/apache/bcel/internal/generic/SWITCH.java
Or download all of them as a single archive file:
File name: java.xml-17.0.5-src.zip File size: 5047495 bytes Release date: 2022-09-13 Download
⇒ JDK 17 java.xml.crypto.jmod - XML Crypto Module
2023-07-17, ≈191🔥, 1💬
Popular Posts:
maven-core-3.5.4.jar is the JAR file for Apache Maven 3.5.4 Core module. Apache Maven is a software ...
What Is HttpComponents httpcore-4.4.6.jar? HttpComponents httpcore-4.4.6.jar is the JAR file for Apa...
What Is poi-ooxml-3.5.jar? poi-ooxml-3.5.jar is one of the JAR files for Apache POI 3.5, which provi...
What JAR files are required to run dom\Writer.java provided in the Apache Xerces package? 3 JAR file...
What Is poi-scratchpad-3.5.jar? poi-scratchpad-3.5.jar is one of the JAR files for Apache POI 3.5, w...