2026-03-17 13:31:18 -07:00

270 lines
8.4 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* javax.baja.nre.util.Array
*/
package javax.baja.util;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import javax.baja.nre.util.Array;
import javax.baja.sys.BObject;
import javax.baja.sys.BSimple;
import javax.baja.sys.Context;
import javax.baja.sys.Sys;
import javax.baja.sys.Type;
import javax.baja.util.BFormat;
/*
* Illegal identifiers - consider using --renameillegalidents true
*/
public final class BNameMap
extends BSimple {
public static final BNameMap NULL;
public static final BNameMap DEFAULT;
public static final Type TYPE;
private String string;
private HashMap map;
private int hashCode;
static /* synthetic */ Class class$javax$baja$util$BNameMap;
static /* synthetic */ Class class$java$lang$String;
public static final BNameMap make(HashMap hashMap) {
if (hashMap.size() == 0) {
return NULL;
}
String string = (String)hashMap.keySet().iterator().next();
BFormat bFormat = (BFormat)hashMap.get(string);
return (BNameMap)new BNameMap((HashMap)hashMap.clone()).intern();
}
public static final BNameMap make(BNameMap bNameMap, String string, String string2) {
return BNameMap.make(bNameMap, string, BFormat.make(string2));
}
public static final BNameMap make(BNameMap bNameMap, String string, BFormat bFormat) {
HashMap hashMap = (HashMap)bNameMap.map.clone();
hashMap.put(string, bFormat);
return (BNameMap)new BNameMap(hashMap).intern();
}
public static final BNameMap make(BNameMap bNameMap, BNameMap bNameMap2) {
HashMap hashMap = (HashMap)bNameMap.map.clone();
String[] stringArray = bNameMap2.list();
int n = 0;
while (n < stringArray.length) {
hashMap.put(stringArray[n], bNameMap2.get(stringArray[n]));
++n;
}
return (BNameMap)new BNameMap(hashMap).intern();
}
public static final BNameMap remove(BNameMap bNameMap, String string) {
HashMap hashMap = (HashMap)bNameMap.map.clone();
hashMap.remove(string);
return (BNameMap)new BNameMap(hashMap).intern();
}
public final String[] list() {
return this.map.keySet().toArray(new String[this.map.size()]);
}
public final BFormat get(String string) {
return (BFormat)this.map.get(string);
}
public final boolean isNull() {
boolean bl = false;
if (this.map.size() == 0) {
bl = true;
}
return bl;
}
public final int hashCode() {
try {
if (this.hashCode == -1) {
this.hashCode = this.encodeToString().hashCode();
}
return this.hashCode;
}
catch (Exception exception) {
return System.identityHashCode(this);
}
}
public final boolean equals(Object object) {
if (object instanceof BNameMap) {
BNameMap bNameMap = (BNameMap)object;
if (this.map.size() != bNameMap.map.size()) {
return false;
}
Iterator iterator = this.map.keySet().iterator();
while (iterator.hasNext()) {
String string = (String)iterator.next();
BFormat bFormat = (BFormat)this.map.get(string);
if (bFormat.equals(bNameMap.map.get(string))) continue;
return false;
}
return true;
}
return false;
}
public final String toString(Context context) {
return this.encodeToString();
}
public final void encode(DataOutput dataOutput) throws IOException {
dataOutput.writeUTF(this.encodeToString());
}
public final BObject decode(DataInput dataInput) throws IOException {
return this.decodeFromString(dataInput.readUTF());
}
public final String encodeToString() {
if (this.string == null) {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append('{');
Iterator iterator = this.map.keySet().iterator();
while (iterator.hasNext()) {
String string = (String)iterator.next();
BFormat bFormat = (BFormat)this.map.get(string);
this.escape(stringBuffer, string);
stringBuffer.append('=');
this.escape(stringBuffer, bFormat.getFormat());
stringBuffer.append(';');
}
stringBuffer.append('}');
this.string = stringBuffer.toString();
}
return this.string;
}
public final BObject decodeFromString(String string) throws IOException {
try {
int n;
int n2 = string.indexOf(123);
int n3 = string.lastIndexOf(125);
if (n2 + 1 == n3) {
return NULL;
}
String string2 = string.substring(n2 + 1, n3);
Class clazz = class$java$lang$String;
if (clazz == null) {
clazz = class$java$lang$String = BNameMap.class("[Ljava.lang.String;", false);
}
Array array = new Array(clazz);
int n4 = string2.length();
StringBuffer stringBuffer = new StringBuffer();
int n5 = 59;
int n6 = 0;
while (n6 < n4) {
n = string2.charAt(n6);
if (n == 92) {
stringBuffer.append(string2.charAt(++n6));
} else if (n != 61 && n != 59) {
stringBuffer.append((char)n);
} else {
if (n == n5) {
throw new Exception();
}
n5 = n;
array.add((Object)stringBuffer.toString());
stringBuffer.setLength(0);
}
++n6;
}
HashMap<String, BFormat> hashMap = new HashMap<String, BFormat>();
n = 0;
while (n < array.size()) {
String string3 = (String)array.get(n);
BFormat bFormat = BFormat.make((String)array.get(n + '\u0001'));
hashMap.put(string3, bFormat);
n += 2;
}
BNameMap bNameMap = (BNameMap)new BNameMap(hashMap).intern();
bNameMap.string = string;
return bNameMap;
}
catch (Exception exception) {
throw new IOException("Invalid BNameMap: " + string);
}
}
private final void escape(StringBuffer stringBuffer, String string) {
int n = string.length();
int n2 = 0;
while (n2 < n) {
char c = string.charAt(n2);
switch (c) {
case '\\': {
stringBuffer.append("\\\\");
break;
}
case '{': {
stringBuffer.append("\\{");
break;
}
case '}': {
stringBuffer.append("\\}");
break;
}
case '=': {
stringBuffer.append("\\=");
break;
}
case ';': {
stringBuffer.append("\\;");
break;
}
default: {
stringBuffer.append(c);
}
}
++n2;
}
}
public final Type getType() {
return TYPE;
}
static /* synthetic */ Class class(String string, boolean bl) {
try {
Class<?> clazz = Class.forName(string);
if (!bl) {
clazz = clazz.getComponentType();
}
return clazz;
}
catch (ClassNotFoundException classNotFoundException) {
throw new NoClassDefFoundError(classNotFoundException.getMessage());
}
}
private final /* synthetic */ void this() {
this.hashCode = -1;
}
private BNameMap(HashMap hashMap) {
this.this();
this.map = hashMap;
}
static {
DEFAULT = NULL = new BNameMap(new HashMap());
Class clazz = class$javax$baja$util$BNameMap;
if (clazz == null) {
clazz = class$javax$baja$util$BNameMap = BNameMap.class("[Ljavax.baja.util.BNameMap;", false);
}
TYPE = Sys.loadType(clazz);
}
}