• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

alibaba / jetcache / #405

16 Apr 2024 05:58AM UTC coverage: 0.0% (-88.9%) from 88.866%
#405

push

areyouok
add encoding to fix coverage report

0 of 5353 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/jetcache-anno/src/main/java/com/alicp/jetcache/anno/support/DefaultEncoderParser.java
1
/**
2
 * Created on 2019/6/7.
3
 */
4
package com.alicp.jetcache.anno.support;
5

6
import com.alicp.jetcache.CacheConfigException;
7
import com.alicp.jetcache.anno.SerialPolicy;
8
import com.alicp.jetcache.support.JavaValueDecoder;
9
import com.alicp.jetcache.support.JavaValueEncoder;
10
import com.alicp.jetcache.support.Kryo5ValueDecoder;
11
import com.alicp.jetcache.support.Kryo5ValueEncoder;
12
import com.alicp.jetcache.support.KryoValueDecoder;
13
import com.alicp.jetcache.support.KryoValueEncoder;
14

15
import java.net.URI;
16
import java.util.HashMap;
17
import java.util.Map;
18
import java.util.function.Function;
19

20
/**
21
 * @author huangli
22
 */
23
public class DefaultEncoderParser implements EncoderParser {
×
24
    protected static Map<String, String> parseQueryParameters(String query) {
25
        Map<String, String> m = new HashMap<>();
×
26
        if (query != null) {
×
27
            String[] pairs = query.split("&");
×
28
            for (String pair : pairs) {
×
29
                int idx = pair.indexOf("=");
×
30
                String key = idx > 0 ? pair.substring(0, idx) : pair;
×
31
                String value = idx > 0 && pair.length() > idx + 1 ? pair.substring(idx + 1) : null;
×
32
                if (key != null && value != null) {
×
33
                    m.put(key, value);
×
34
                }
35
            }
36
        }
37
        return m;
×
38
    }
39

40
    JavaValueDecoder javaValueDecoder(boolean useIdentityNumber) {
41
        return new JavaValueDecoder(useIdentityNumber);
×
42
    }
43

44
    @Override
45
    public Function<Object, byte[]> parseEncoder(String valueEncoder) {
46
        if (valueEncoder == null) {
×
47
            throw new CacheConfigException("no serialPolicy");
×
48
        }
49
        valueEncoder = valueEncoder.trim();
×
50
        URI uri = URI.create(valueEncoder);
×
51
        valueEncoder = uri.getPath();
×
52
        boolean useIdentityNumber = isUseIdentityNumber(uri);
×
53
        if (SerialPolicy.KRYO.equalsIgnoreCase(valueEncoder)) {
×
54
            return new KryoValueEncoder(useIdentityNumber);
×
55
        } else if (SerialPolicy.JAVA.equalsIgnoreCase(valueEncoder)) {
×
56
            return new JavaValueEncoder(useIdentityNumber);
×
57
        } else if (SerialPolicy.KRYO5.equalsIgnoreCase(valueEncoder)) {
×
58
            return new Kryo5ValueEncoder(useIdentityNumber);
×
59
        }/* else if (SerialPolicy.FASTJSON2.equalsIgnoreCase(valueEncoder)) {
60
            return new Fastjson2ValueEncoder(useIdentityNumber);
61
        }*/ else {
62
            throw new CacheConfigException("not supported:" + valueEncoder);
×
63
        }
64
    }
65

66
    private boolean isUseIdentityNumber(URI uri) {
67
        Map<String, String> params = parseQueryParameters(uri.getQuery());
×
68
        boolean useIdentityNumber = true;
×
69
        if ("false".equalsIgnoreCase(params.get("useIdentityNumber"))) {
×
70
            useIdentityNumber = false;
×
71
        }
72
        return useIdentityNumber;
×
73
    }
74

75
    @Override
76
    public Function<byte[], Object> parseDecoder(String valueDecoder) {
77
        if (valueDecoder == null) {
×
78
            throw new CacheConfigException("no serialPolicy");
×
79
        }
80
        valueDecoder = valueDecoder.trim();
×
81
        URI uri = URI.create(valueDecoder);
×
82
        valueDecoder = uri.getPath();
×
83
        boolean useIdentityNumber = isUseIdentityNumber(uri);
×
84
        if (SerialPolicy.KRYO.equalsIgnoreCase(valueDecoder)) {
×
85
            return new KryoValueDecoder(useIdentityNumber);
×
86
        } else if (SerialPolicy.JAVA.equalsIgnoreCase(valueDecoder)) {
×
87
            return javaValueDecoder(useIdentityNumber);
×
88
        } else if (SerialPolicy.KRYO5.equalsIgnoreCase(valueDecoder)) {
×
89
            return new Kryo5ValueDecoder(useIdentityNumber);
×
90
        }/* else if (SerialPolicy.FASTJSON2.equalsIgnoreCase(valueDecoder)) {
91
            return new Kryo5ValueDecoder(useIdentityNumber);
92
        }*/ else {
93
            throw new CacheConfigException("not supported:" + valueDecoder);
×
94
        }
95
    }
96
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc