Project

General

Profile

1 49182 sandro.lab
package eu.dnetlib.pid.resolver.model;
2
3
import com.google.gson.Gson;
4 49208 sandro.lab
import eu.dnetlib.miscutils.functional.xml.DnetXsltFunctions;
5
import org.apache.commons.lang3.StringUtils;
6 49182 sandro.lab
7 49332 sandro.lab
import java.util.List;
8
9 49182 sandro.lab
public abstract class AbstractResolvedObject implements ResolvedObject {
10
    protected static final Gson g = new Gson();
11
    /**
12
     * The doi.
13
     */
14
    protected String pid;
15
    /**
16
     * The pid type.
17
     */
18
    protected String pidType;
19
20 49332 sandro.lab
    /**
21
     * The datasources.
22
     */
23
    protected List<ObjectProvenance> datasourceProvenance;
24
25
26 49182 sandro.lab
    @Override
27
    public String getPid() {
28
        return pid;
29
    }
30
31
    @Override
32
    public ResolvedObject setPid(String pid) {
33
        this.pid = pid;
34
        return this;
35
    }
36
37
    @Override
38
    public String getPidType() {
39
        return pidType;
40
    }
41
42
    @Override
43
    public ResolvedObject setPidType(String pidType) {
44
        this.pidType = pidType;
45
        return this;
46
    }
47
48 49208 sandro.lab
    /**
49
     * Gets the identifier. with the form of MD5(pid::pidType)
50
     *
51
     * @return the identifier
52
     */
53 49182 sandro.lab
    @Override
54 49208 sandro.lab
    public String getIdentifier() {
55
        if (StringUtils.isBlank(pid) || StringUtils.isBlank(pidType))
56
            throw new RuntimeException("Error pid or pidType cannot be null");
57
        return DnetXsltFunctions.md5(String.format("%s::%s", pid.trim().toLowerCase(), pidType.toLowerCase().trim()));
58
    }
59 49182 sandro.lab
60
    @Override
61
    public String toJsonString() {
62
        return g.toJson(this);
63
    }
64 49332 sandro.lab
65
66
    @Override
67
    public List<ObjectProvenance> getDatasourceProvenance() {
68
        return datasourceProvenance;
69
    }
70
71
72
    @Override
73
    public ResolvedObject setDatasourceProvenance(final List<ObjectProvenance> datasourceProvenance) {
74
        this.datasourceProvenance = datasourceProvenance;
75
        return this;
76
    }
77 49182 sandro.lab
}