正在查看: SpeedCash v6.5.1482 应用的 DecompressorRegistry.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: SpeedCash v6.5.1482 应用的 DecompressorRegistry.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package io.grpc;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import io.grpc.Codec;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1704")
@ThreadSafe
public final class DecompressorRegistry {
public static final Joiner c = Joiner.on(',');
public static final DecompressorRegistry d = emptyInstance().with(new Codec.Gzip(), true).with(Codec.Identity.NONE, false);
public final Map<String, a> a;
public final byte[] b;
public static final class a {
public final Decompressor a;
public final boolean b;
public a(Decompressor decompressor, boolean z) {
this.a = (Decompressor) Preconditions.checkNotNull(decompressor, "decompressor");
this.b = z;
}
}
public DecompressorRegistry(Decompressor decompressor, boolean z, DecompressorRegistry decompressorRegistry) {
String messageEncoding = decompressor.getMessageEncoding();
Preconditions.checkArgument(!messageEncoding.contains(","), "Comma is currently not allowed in message encoding");
int size = decompressorRegistry.a.size();
LinkedHashMap linkedHashMap = new LinkedHashMap(decompressorRegistry.a.containsKey(decompressor.getMessageEncoding()) ? size : size + 1);
for (a aVar : decompressorRegistry.a.values()) {
String messageEncoding2 = aVar.a.getMessageEncoding();
if (!messageEncoding2.equals(messageEncoding)) {
linkedHashMap.put(messageEncoding2, new a(aVar.a, aVar.b));
}
}
linkedHashMap.put(messageEncoding, new a(decompressor, z));
this.a = Collections.unmodifiableMap(linkedHashMap);
this.b = c.join(getAdvertisedMessageEncodings()).getBytes(Charset.forName("US-ASCII"));
}
public static DecompressorRegistry emptyInstance() {
return new DecompressorRegistry();
}
public static DecompressorRegistry getDefaultInstance() {
return d;
}
public byte[] a() {
return this.b;
}
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1704")
public Set<String> getAdvertisedMessageEncodings() {
HashSet hashSet = new HashSet(this.a.size());
for (Map.Entry<String, a> entry : this.a.entrySet()) {
if (entry.getValue().b) {
hashSet.add(entry.getKey());
}
}
return Collections.unmodifiableSet(hashSet);
}
public Set<String> getKnownMessageEncodings() {
return this.a.keySet();
}
@Nullable
public Decompressor lookupDecompressor(String str) {
a aVar = this.a.get(str);
if (aVar != null) {
return aVar.a;
}
return null;
}
public DecompressorRegistry with(Decompressor decompressor, boolean z) {
return new DecompressorRegistry(decompressor, z, this);
}
public DecompressorRegistry() {
this.a = new LinkedHashMap(0);
this.b = new byte[0];
}
}