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 Commons Lang v3 Source Code Files
Apache Commons Lang 3 is the 3rd version of Apache Commons Lang, which provides a host of helper utilities for the java.lang API.
Apache Commons Lang 3 Source Code files are provided in both binary packge (commons-lang3-3.12.0-bin.zip) and source package (commons-lang3-3.12.0-src.zip). You can download them at Apache Commons Lang Website.
Apache Commons Lang 3 Source Code has no dependencies and is compatible with Java 8 and newer versions. You can compile it to generate your own version of Apache Commons Lang 3 JAR file.
You can also browse the source code below:
✍: FYIcenter
⏎ org/apache/commons/lang3/text/translate/NumericEntityUnescaper.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.commons.lang3.text.translate; import java.io.IOException; import java.io.Writer; import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; /** * Translate XML numeric entities of the form &#[xX]?\d+;? to * the specific codepoint. * * Note that the semicolon is optional. * * @since 3.0 * @deprecated as of 3.6, use commons-text * <a href="https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/translate/NumericEntityUnescaper.html"> * NumericEntityUnescaper</a> instead */ @Deprecated public class NumericEntityUnescaper extends CharSequenceTranslator { /** Enumerates NumericEntityUnescaper options for unescaping. */ public enum OPTION { /** * Require a semicolon. */ semiColonRequired, /** * Do not require a semicolon. */ semiColonOptional, /** * Throw an exception if a semicolon is missing. */ errorIfNoSemiColon } // TODO?: Create an OptionsSet class to hide some of the conditional logic below private final EnumSet<OPTION> options; /** * Create a UnicodeUnescaper. * * The constructor takes a list of options, only one type of which is currently * available (whether to allow, error or ignore the semicolon on the end of a * numeric entity to being missing). * * For example, to support numeric entities without a ';': * new NumericEntityUnescaper(NumericEntityUnescaper.OPTION.semiColonOptional) * and to throw an IllegalArgumentException when they're missing: * new NumericEntityUnescaper(NumericEntityUnescaper.OPTION.errorIfNoSemiColon) * * Note that the default behavior is to ignore them. * * @param options to apply to this unescaper */ public NumericEntityUnescaper(final OPTION... options) { if (options.length > 0) { this.options = EnumSet.copyOf(Arrays.asList(options)); } else { this.options = EnumSet.copyOf(Collections.singletonList(OPTION.semiColonRequired)); } } /** * Whether the passed in option is currently set. * * @param option to check state of * @return whether the option is set */ public boolean isSet(final OPTION option) { return options != null && options.contains(option); } /** * {@inheritDoc} */ @Override public int translate(final CharSequence input, final int index, final Writer out) throws IOException { final int seqEnd = input.length(); // Uses -2 to ensure there is something after the &# if (input.charAt(index) == '&' && index < seqEnd - 2 && input.charAt(index + 1) == '#') { int start = index + 2; boolean isHex = false; final char firstChar = input.charAt(start); if (firstChar == 'x' || firstChar == 'X') { start++; isHex = true; // Check there's more than just an x after the &# if (start == seqEnd) { return 0; } } int end = start; // Note that this supports character codes without a ; on the end while (end < seqEnd && ( input.charAt(end) >= '0' && input.charAt(end) <= '9' || input.charAt(end) >= 'a' && input.charAt(end) <= 'f' || input.charAt(end) >= 'A' && input.charAt(end) <= 'F' ) ) { end++; } final boolean semiNext = end != seqEnd && input.charAt(end) == ';'; if (!semiNext) { if (isSet(OPTION.semiColonRequired)) { return 0; } else if (isSet(OPTION.errorIfNoSemiColon)) { throw new IllegalArgumentException("Semi-colon required at end of numeric entity"); } } final int entityValue; try { if (isHex) { entityValue = Integer.parseInt(input.subSequence(start, end).toString(), 16); } else { entityValue = Integer.parseInt(input.subSequence(start, end).toString(), 10); } } catch(final NumberFormatException nfe) { return 0; } if (entityValue > 0xFFFF) { final char[] chars = Character.toChars(entityValue); out.write(chars[0]); out.write(chars[1]); } else { out.write(entityValue); } return 2 + end - start + (isHex ? 1 : 0) + (semiNext ? 1 : 0); } return 0; } }
⏎ org/apache/commons/lang3/text/translate/NumericEntityUnescaper.java
Or download all of them as a single archive file:
File name: commons-lang3-3.12.0-sources.jar File size: 651724 bytes Release date: 2020-01-22 Download
⇒ Download and Install commons-lang3-3.8.1-bin.zip
⇐ Download Apache Commons Lang v3 Source Package
2022-10-19, 150997👍, 3💬
Popular Posts:
JDK 11 java.rmi.jmod is the JMOD file for JDK 11 RMI (Remote Method Invocation) module. JDK 11 RMI m...
Guava is a suite of core and expanded libraries that include utility classes, google's collections, ...
JDK 11 jdk.crypto.cryptoki.jmod is the JMOD file for JDK 11 Crypto Cryptoki module. JDK 11 Crypto KI...
Apache Log4j provides the interface that applications should code to and provides the adapter compon...
Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java...