Project

General

Profile

1
package eu.dnetlib.data.mapreduce.hbase.dataimport;
2

    
3
import com.google.gson.JsonArray;
4
import com.google.gson.JsonObject;
5
import eu.dnetlib.data.proto.FieldTypeProtos;
6
import org.apache.commons.lang3.StringUtils;
7

    
8
import java.util.ArrayList;
9
import java.util.List;
10
import java.util.Map;
11

    
12
public class DumpToActionsUtility {
13

    
14
    public static String getStringValue(final JsonObject root, final String key) {
15
        if (root.has(key) && !root.get(key).isJsonNull())
16
            return root.get(key).getAsString();
17
        return null;
18
    }
19

    
20
    public static List<String> getArrayValues(final JsonObject root, final String key) {
21
        if (root.has(key) && root.get(key).isJsonArray()) {
22
            final JsonArray asJsonArray = root.get(key).getAsJsonArray();
23
            final List<String> result = new ArrayList<>();
24

    
25

    
26
            asJsonArray.forEach(it -> {
27
                if (StringUtils.isNotBlank(it.getAsString())) {
28
                    result.add(it.getAsString());
29
                }
30
            });
31
            return result;
32
        }
33
        return new ArrayList<>();
34
    }
35
    public static FieldTypeProtos.StructuredProperty getPid(final JsonObject localIdentifier, final Map<String, ScholExplorerConfiguration> conf) {
36
        final String pidType = getStringValue(localIdentifier, "type");
37
        final ScholExplorerConfiguration configuration = conf.get(pidType);
38
        if (configuration.getCleandPidType() == null) {
39
            return null;
40
        }
41
        final String pid = getStringValue(localIdentifier, "id");
42
        return FieldTypeProtos.StructuredProperty.newBuilder()
43
                .setValue(pid)
44
                .setQualifier(getQualifier(configuration.getCleandPidType(), "dnet:pid_types"))
45
                .build();
46
    }
47
    public static FieldTypeProtos.Qualifier getQualifier(final String classValue, final String schemeValue) {
48

    
49
        return FieldTypeProtos.Qualifier.newBuilder()
50
                .setSchemeid(schemeValue)
51
                .setSchemename(schemeValue)
52
                .setClassname(classValue)
53
                .setClassid(classValue)
54
                .build();
55
    }
56

    
57
    public static String getDefaultResulttype(final String cobjcategory) {
58
        switch (cobjcategory) {
59
            case "0029":
60
                return "software";
61
            case "0021":
62
            case "0024":
63
            case "0025":
64
            case "0030":
65
                return "dataset";
66
            case "0000":
67
            case "0010":
68
            case "0018":
69
            case "0020":
70
            case "0022":
71
            case "0023":
72
            case "0026":
73
            case "0027":
74
            case "0028":
75
            case "0037":
76
                return "other";
77
            case "0001":
78
            case "0002":
79
            case "0004":
80
            case "0005":
81
            case "0006":
82
            case "0007":
83
            case "0008":
84
            case "0009":
85
            case "0011":
86
            case "0012":
87
            case "0013":
88
            case "0014":
89
            case "0015":
90
            case "0016":
91
            case "0017":
92
            case "0019":
93
            case "0031":
94
            case "0032":
95
                return "publication";
96
            default:
97
                return "publication";
98
        }
99
    }
100

    
101
}
(4-4/11)