导航菜单

页面标题

页面副标题

SpeedCash v6.5.1482 - DecompressorRegistry.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];
    }
}