public final class org.glassfish.grizzly.utils.Charsets extends java.lang.Object
{
public static final java.lang.String DEFAULT_CHARACTER_ENCODING;
private static final java.util.concurrent.ConcurrentMap charsetAliasMap;
public static final java.nio.charset.Charset ASCII_CHARSET;
public static final java.nio.charset.Charset UTF8_CHARSET;
public static final java.nio.charset.Charset DEFAULT_CHARSET;
public static final int CODECS_CACHE_SIZE;
private static final org.glassfish.grizzly.utils.Charsets$CharsetCodecResolver DECODER_RESOLVER;
private static final org.glassfish.grizzly.utils.Charsets$CharsetCodecResolver ENCODER_RESOLVER;
private static final org.glassfish.grizzly.ThreadCache$CachedTypeIndex CODECS_CACHE;
private static volatile boolean areCharsetsPreloaded;
public void <init>()
{
org.glassfish.grizzly.utils.Charsets v;
v := @this: org.glassfish.grizzly.utils.Charsets;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.nio.charset.Charset lookupCharset(java.lang.String)
{
java.util.concurrent.ConcurrentMap v, v;
java.nio.charset.Charset v, v;
java.util.Locale v;
java.lang.Object v, v;
java.lang.String v, v;
java.nio.charset.UnsupportedCharsetException v;
boolean v;
v := @parameter: java.lang.String;
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = <org.glassfish.grizzly.utils.Charsets: boolean areCharsetsPreloaded>;
if v == 0 goto label;
v = new java.nio.charset.UnsupportedCharsetException;
specialinvoke v.<java.nio.charset.UnsupportedCharsetException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>(v);
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v;
goto label;
label:
v = v;
label:
v = v;
label:
return v;
}
public static void preloadAllCharsets()
{
java.lang.Throwable v;
java.util.concurrent.ConcurrentMap v, v, v;
java.util.Locale v, v;
java.lang.String v, v, v;
boolean v, v;
java.util.Iterator v, v;
java.util.Collection v;
java.util.Set v;
java.lang.Object v, v;
java.util.SortedMap v;
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
entermonitor v;
label:
v = staticinvoke <java.nio.charset.Charset: java.util.SortedMap availableCharsets()>();
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<java.nio.charset.Charset: java.util.Set aliases()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
<org.glassfish.grizzly.utils.Charsets: boolean areCharsetsPreloaded> = 1;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public static void drainAllCharsets()
{
java.lang.Throwable v;
java.util.concurrent.ConcurrentMap v, v;
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
entermonitor v;
label:
<org.glassfish.grizzly.utils.Charsets: boolean areCharsetsPreloaded> = 0;
v = <org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: void clear()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public static java.nio.charset.CharsetDecoder getCharsetDecoder(java.nio.charset.Charset)
{
java.nio.charset.Charset v;
org.glassfish.grizzly.utils.Charsets$CodecsCache v;
java.nio.charset.CharsetDecoder v;
java.lang.IllegalArgumentException v;
v := @parameter: java.nio.charset.Charset;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Charset can not be null");
throw v;
label:
v = staticinvoke <org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.utils.Charsets$CodecsCache obtainCodecsCache()>();
v = virtualinvoke v.<org.glassfish.grizzly.utils.Charsets$CodecsCache: java.nio.charset.CharsetDecoder getDecoder(java.nio.charset.Charset)>(v);
virtualinvoke v.<java.nio.charset.CharsetDecoder: java.nio.charset.CharsetDecoder reset()>();
return v;
}
public static java.nio.charset.CharsetEncoder getCharsetEncoder(java.nio.charset.Charset)
{
java.nio.charset.Charset v;
java.nio.charset.CharsetEncoder v;
org.glassfish.grizzly.utils.Charsets$CodecsCache v;
java.lang.IllegalArgumentException v;
v := @parameter: java.nio.charset.Charset;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Charset can not be null");
throw v;
label:
v = staticinvoke <org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.utils.Charsets$CodecsCache obtainCodecsCache()>();
v = virtualinvoke v.<org.glassfish.grizzly.utils.Charsets$CodecsCache: java.nio.charset.CharsetEncoder getEncoder(java.nio.charset.Charset)>(v);
virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CharsetEncoder reset()>();
return v;
}
private static org.glassfish.grizzly.utils.Charsets$CodecsCache obtainCodecsCache()
{
org.glassfish.grizzly.utils.Charsets$CodecsCache v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v, v;
java.lang.Object v;
v = <org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.ThreadCache$CachedTypeIndex CODECS_CACHE>;
v = staticinvoke <org.glassfish.grizzly.ThreadCache: java.lang.Object getFromCache(org.glassfish.grizzly.ThreadCache$CachedTypeIndex)>(v);
if v != null goto label;
v = new org.glassfish.grizzly.utils.Charsets$CodecsCache;
specialinvoke v.<org.glassfish.grizzly.utils.Charsets$CodecsCache: void <init>()>();
v = v;
v = <org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.ThreadCache$CachedTypeIndex CODECS_CACHE>;
staticinvoke <org.glassfish.grizzly.ThreadCache: boolean putToCache(org.glassfish.grizzly.ThreadCache$CachedTypeIndex,java.lang.Object)>(v, v);
label:
return v;
}
static void <clinit>()
{
java.util.concurrent.ConcurrentHashMap v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
java.nio.charset.Charset v, v, v, v;
java.lang.Class v;
org.glassfish.grizzly.utils.Charsets$DecoderResolver v;
org.glassfish.grizzly.utils.Charsets$EncoderResolver v;
java.lang.String v, v, v;
boolean v;
v = class "Lorg/glassfish/grizzly/utils/Charsets;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.preloadAllCharsets");
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>(v);
if v == 0 goto label;
staticinvoke <org.glassfish.grizzly.utils.Charsets: void preloadAllCharsets()>();
label:
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
<org.glassfish.grizzly.utils.Charsets: java.lang.String DEFAULT_CHARACTER_ENCODING> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(8);
<org.glassfish.grizzly.utils.Charsets: java.util.concurrent.ConcurrentMap charsetAliasMap> = v;
v = staticinvoke <org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset lookupCharset(java.lang.String)>("ASCII");
<org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset ASCII_CHARSET> = v;
v = staticinvoke <org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset lookupCharset(java.lang.String)>("UTF-8");
<org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset UTF8_CHARSET> = v;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
<org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset DEFAULT_CHARSET> = v;
v = new org.glassfish.grizzly.utils.Charsets$DecoderResolver;
specialinvoke v.<org.glassfish.grizzly.utils.Charsets$DecoderResolver: void <init>()>();
<org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.utils.Charsets$CharsetCodecResolver DECODER_RESOLVER> = v;
v = new org.glassfish.grizzly.utils.Charsets$EncoderResolver;
specialinvoke v.<org.glassfish.grizzly.utils.Charsets$EncoderResolver: void <init>()>();
<org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.utils.Charsets$CharsetCodecResolver ENCODER_RESOLVER> = v;
v = staticinvoke <org.glassfish.grizzly.ThreadCache: org.glassfish.grizzly.ThreadCache$CachedTypeIndex obtainIndex(java.lang.Class,int)>(class "Lorg/glassfish/grizzly/utils/Charsets$CodecsCache;", 1);
<org.glassfish.grizzly.utils.Charsets: org.glassfish.grizzly.ThreadCache$CachedTypeIndex CODECS_CACHE> = v;
return;
}
}