Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
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 (309)
Collections:
Other Resources:
Apache BCEL Source Code Files
Apache BCEL Source Code Files are inside the Apache BCEL source package file like bcel-6.6.1-src.zip. Unzip the source package file and go to the "src/main" sub-directory, you will see source code files.
Here is the list of Java source code files of the Apache BCEL 6.6.1 in \Users\fyicenter\bcel-6.6.1\src:
✍: FYIcenter
⏎ org/apache/bcel/classfile/LineNumberTable.java
/* * 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 org.apache.bcel.classfile; import java.io.DataInput; import java.io.DataOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.Iterator; import java.util.stream.Stream; import org.apache.bcel.Const; /** * This class represents a table of line numbers for debugging purposes. This attribute is used by the <em>Code</em> * attribute. It contains pairs of PCs and line numbers. * * @see Code * @see LineNumber */ public final class LineNumberTable extends Attribute implements Iterable<LineNumber> { private static final int MAX_LINE_LENGTH = 72; private LineNumber[] lineNumberTable; // Table of line/numbers pairs /** * Construct object from input stream. * * @param nameIndex Index of name * @param length Content length in bytes * @param input Input stream * @param constantPool Array of constants * @throws IOException if an I/O Exception occurs in readUnsignedShort */ LineNumberTable(final int nameIndex, final int length, final DataInput input, final ConstantPool constantPool) throws IOException { this(nameIndex, length, (LineNumber[]) null, constantPool); final int lineNumberTableLength = input.readUnsignedShort(); lineNumberTable = new LineNumber[lineNumberTableLength]; for (int i = 0; i < lineNumberTableLength; i++) { lineNumberTable[i] = new LineNumber(input); } } /* * @param nameIndex Index of name * * @param length Content length in bytes * * @param lineNumberTable Table of line/numbers pairs * * @param constantPool Array of constants */ public LineNumberTable(final int nameIndex, final int length, final LineNumber[] lineNumberTable, final ConstantPool constantPool) { super(Const.ATTR_LINE_NUMBER_TABLE, nameIndex, length, constantPool); this.lineNumberTable = lineNumberTable; } /* * Initialize from another object. Note that both objects use the same references (shallow copy). Use copy() for a * physical copy. */ public LineNumberTable(final LineNumberTable c) { this(c.getNameIndex(), c.getLength(), c.getLineNumberTable(), c.getConstantPool()); } /** * Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. * I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects. * * @param v Visitor object */ @Override public void accept(final Visitor v) { v.visitLineNumberTable(this); } /** * @return deep copy of this attribute */ @Override public Attribute copy(final ConstantPool constantPool) { // TODO could use the lower level constructor and thereby allow // lineNumberTable to be made final final LineNumberTable c = (LineNumberTable) clone(); c.lineNumberTable = new LineNumber[lineNumberTable.length]; Arrays.setAll(c.lineNumberTable, i -> lineNumberTable[i].copy()); c.setConstantPool(constantPool); return c; } /** * Dump line number table attribute to file stream in binary format. * * @param file Output file stream * @throws IOException if an I/O Exception occurs in writeShort */ @Override public void dump(final DataOutputStream file) throws IOException { super.dump(file); file.writeShort(lineNumberTable.length); for (final LineNumber lineNumber : lineNumberTable) { lineNumber.dump(file); } } /** * @return Array of (pc offset, line number) pairs. */ public LineNumber[] getLineNumberTable() { return lineNumberTable; } /** * Map byte code positions to source code lines. * * @param pos byte code offset * @return corresponding line in source code */ public int getSourceLine(final int pos) { int l = 0; int r = lineNumberTable.length - 1; if (r < 0) { return -1; } int minIndex = -1; int min = -1; /* * Do a binary search since the array is ordered. */ do { final int i = l + r >>> 1; final int j = lineNumberTable[i].getStartPC(); if (j == pos) { return lineNumberTable[i].getLineNumber(); } if (pos < j) { r = i - 1; } else { l = i + 1; } /* * If exact match can't be found (which is the most common case) return the line number that corresponds to the greatest * index less than pos. */ if (j < pos && j > min) { min = j; minIndex = i; } } while (l <= r); /* * It's possible that we did not find any valid entry for the bytecode offset we were looking for. */ if (minIndex < 0) { return -1; } return lineNumberTable[minIndex].getLineNumber(); } public int getTableLength() { return lineNumberTable == null ? 0 : lineNumberTable.length; } @Override public Iterator<LineNumber> iterator() { return Stream.of(lineNumberTable).iterator(); } /** * @param lineNumberTable the line number entries for this table */ public void setLineNumberTable(final LineNumber[] lineNumberTable) { this.lineNumberTable = lineNumberTable; } /** * @return String representation. */ @Override public String toString() { final StringBuilder buf = new StringBuilder(); final StringBuilder line = new StringBuilder(); final String newLine = System.getProperty("line.separator", "\n"); for (int i = 0; i < lineNumberTable.length; i++) { line.append(lineNumberTable[i].toString()); if (i < lineNumberTable.length - 1) { line.append(", "); } if (line.length() > MAX_LINE_LENGTH && i < lineNumberTable.length - 1) { line.append(newLine); buf.append(line); line.setLength(0); } } buf.append(line); return buf.toString(); } }
⏎ org/apache/bcel/classfile/LineNumberTable.java
Or download all of them as a single archive file:
File name: bcel-6.6.1-sources.jar File size: 688374 bytes Release date: 2022-09-18 Download
⇒ Install Apache BCEL 6.5.0 Binary Package
⇐ Download and Install Apache BCEL Source Package
2021-08-21, 64393👍, 0💬
Popular Posts:
JDK 11 jdk.internal.opt.jmod is the JMOD file for JDK 11 Internal Opt module. JDK 11 Internal Opt mo...
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...
What Is ojdbc5.jar for Oracle 11g R1? ojdbc5.jar for Oracle 11g R1 is the JAR files of ojdbc.jar, JD...
JAX-WS is an API for building web services and clients. It is the next generation Web Services API r...
JDK 11 jdk.localedata.jmod is the JMOD file for JDK 11 Localedata module. JDK 11 Locale Data module ...