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 jdk.charsets.jmod - Charsets Module
JDK 17 jdk.charsets.jmod is the JMOD file for JDK 17 Charsets module.
JDK 17 Charsets module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.charsets.jmod.
JDK 17 Charsets module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Charsets module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\jdk.charsets.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/nio/cs/ext/AbstractCharsetProvider.java
/*
* Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package sun.nio.cs.ext;
import java.lang.ref.SoftReference;
import java.nio.charset.Charset;
import java.nio.charset.spi.CharsetProvider;
import java.util.ArrayList;
import java.util.TreeMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
/**
* Abstract base class for charset providers.
*
* @author Mark Reinhold
*/
public class AbstractCharsetProvider
extends CharsetProvider
{
/* Maps canonical names to class names
*/
private Map<String,String> classMap
= new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
/* Maps alias names to canonical names
*/
private Map<String,String> aliasMap
= new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
/* Maps canonical names to alias-name arrays
*/
private Map<String,String[]> aliasNameMap
= new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
/* Maps canonical names to soft references that hold cached instances
*/
private Map<String,SoftReference<Charset>> cache
= new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
private String packagePrefix;
protected AbstractCharsetProvider() {
packagePrefix = "sun.nio.cs.";
}
protected AbstractCharsetProvider(String pkgPrefixName) {
packagePrefix = pkgPrefixName.concat(".");
}
/* Add an entry to the given map, but only if no mapping yet exists
* for the given name.
*/
private static <K,V> void put(Map<K,V> m, K name, V value) {
if (!m.containsKey(name))
m.put(name, value);
}
private static <K,V> void remove(Map<K,V> m, K name) {
V x = m.remove(name);
assert (x != null);
}
/* Declare support for the given charset
*/
protected void charset(String name, String className, String[] aliases) {
synchronized (this) {
put(classMap, name, className);
for (int i = 0; i < aliases.length; i++)
put(aliasMap, aliases[i], name);
put(aliasNameMap, name, aliases);
cache.clear();
}
}
protected void deleteCharset(String name, String[] aliases) {
synchronized (this) {
remove(classMap, name);
for (int i = 0; i < aliases.length; i++)
remove(aliasMap, aliases[i]);
remove(aliasNameMap, name);
cache.clear();
}
}
protected boolean hasCharset(String name) {
synchronized (this) {
return classMap.containsKey(name);
}
}
/* Late initialization hook, needed by some providers
*/
protected void init() { }
private String canonicalize(String charsetName) {
String acn = aliasMap.get(charsetName);
return (acn != null) ? acn : charsetName;
}
private Charset lookup(String csn) {
// Check cache first
SoftReference<Charset> sr = cache.get(csn);
if (sr != null) {
Charset cs = sr.get();
if (cs != null)
return cs;
}
// Do we even support this charset?
String cln = classMap.get(csn);
if (cln == null)
return null;
// Instantiate the charset and cache it
try {
Class<?> c = Class.forName(packagePrefix.concat(cln),
true,
this.getClass().getClassLoader());
@SuppressWarnings("deprecation")
Charset cs = (Charset)c.newInstance();
cache.put(csn, new SoftReference<Charset>(cs));
return cs;
} catch (ClassNotFoundException x) {
return null;
} catch (IllegalAccessException x) {
return null;
} catch (InstantiationException x) {
return null;
}
}
public final Charset charsetForName(String charsetName) {
synchronized (this) {
init();
return lookup(canonicalize(charsetName));
}
}
public final Iterator<Charset> charsets() {
final ArrayList<String> ks;
synchronized (this) {
init();
ks = new ArrayList<>(classMap.keySet());
}
return new Iterator<Charset>() {
Iterator<String> i = ks.iterator();
public boolean hasNext() {
return i.hasNext();
}
public Charset next() {
String csn = i.next();
synchronized (AbstractCharsetProvider.this) {
return lookup(csn);
}
}
public void remove() {
throw new UnsupportedOperationException();
}
};
}
public final String[] aliases(String charsetName) {
synchronized (this) {
init();
return aliasNameMap.get(charsetName);
}
}
}
⏎ sun/nio/cs/ext/AbstractCharsetProvider.java
Or download all of them as a single archive file:
File name: jdk.charsets-17.0.5-src.zip File size: 2039497 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.compiler.jmod - Compiler Tool
2023-10-15, ≈54🔥, 0💬
Popular Posts:
maven-compat-3.5.4.jar is the JAR file for Apache Maven 3.5.4 Compact module. The JAR file name may ...
JDK 17 java.management.jmod is the JMOD file for JDK 17 Management module. JDK 17 Management module ...
commons-io-2.6-sources.j aris the source JAR file for Apache Commons IO 2.6, which is a library of u...
JDK 11 jdk.compiler.jmod is the JMOD file for JDK 11 Compiler tool, which can be invoked by the "jav...
JDK 8 tools.jar is the JAR file for JDK 8 tools. It contains Java classes to support different JDK t...