Project

General

Profile

« Previous | Next » 

Revision 49728

added Log

View differences:

modules/dnet-pid-resolver/trunk/src/main/java/eu/dnetlib/pid/resolver/model/serializer/ResolvedObjectDeserializer.java
13 13
import java.util.ArrayList;
14 14
import java.util.List;
15 15

  
16
public abstract class ResolvedObjectDeserializer  implements JsonDeserializer<ResolvedObject> {
16
public abstract class ResolvedObjectDeserializer implements JsonDeserializer<ResolvedObject> {
17 17

  
18 18
    private static final Log log = LogFactory.getLog(ResolvedObjectDeserializer.class);
19 19

  
......
21 21

  
22 22
        log.debug("called partialDeserialization");
23 23

  
24
        final JsonElement pid = root.get("pid");
25
        resolvedObject.setPid(pid!= null ? pid.getAsString():"");
26
        final JsonElement pidType = root.get("pidType");
27
        resolvedObject.setPidType(pidType!= null ? pidType.getAsString():"");
28
        final JsonElement type = root.get("type");
29
        if(type!= null)
30
            switch (type.getAsString()) {
31
                case "dataset":
32
                    resolvedObject.setType(ObjectType.dataset);
33
                    break;
34
                case "publication":
35
                    resolvedObject.setType(ObjectType.publication);
36
                    break;
37
                default:
38
                    resolvedObject.setType(ObjectType.unknown);
39
                    break;
24

  
25
        try {
26
            final JsonElement pid = root.get("pid");
27
            resolvedObject.setPid(pid != null ? pid.getAsString() : "");
28
            final JsonElement pidType = root.get("pidType");
29
            resolvedObject.setPidType(pidType != null ? pidType.getAsString() : "");
30
            final JsonElement type = root.get("type");
31
            if (type != null)
32
                switch (type.getAsString()) {
33
                    case "dataset":
34
                        resolvedObject.setType(ObjectType.dataset);
35
                        break;
36
                    case "publication":
37
                        resolvedObject.setType(ObjectType.publication);
38
                        break;
39
                    default:
40
                        resolvedObject.setType(ObjectType.unknown);
41
                        break;
42
                }
43
            if (root.has("subjects") && root.get("subjects").isJsonArray()) {
44
                final JsonArray subjects = root.getAsJsonArray("subjects");
45
                final List<SubjectType> extractedSubjects = new ArrayList<>();
46
                if (subjects != null)
47
                    subjects.forEach(sub -> {
48
                        if (sub.isJsonObject()) {
49
                            final JsonObject subject = sub.getAsJsonObject();
50
                            extractedSubjects.add(new SubjectType(subject.get("scheme").getAsString(), subject.get("term").getAsString()));
51
                        }
52
                    });
53
                resolvedObject.setSubjects(extractedSubjects);
40 54
            }
41
        if (root.has("subjects") && root.get("subjects").isJsonArray()) {
42
            final JsonArray subjects = root.getAsJsonArray("subjects");
43
            final List<SubjectType> extractedSubjects = new ArrayList<>();
44
            if (subjects!= null)
45
                subjects.forEach(sub -> {
46
                    if (sub.isJsonObject()) {
47
                        final JsonObject subject =sub.getAsJsonObject();
48
                        extractedSubjects.add(new SubjectType(subject.get("scheme").getAsString(),subject.get("term").getAsString()));
49
                    }
50
                });
51
            resolvedObject.setSubjects(extractedSubjects);
55
        } catch (Throwable e) {
56
            log.error("ERROR on partial deserialization " + root, e);
52 57
        }
53 58
    }
54 59

  
55 60

  
56 61
    protected String getValue(final JsonObject input, final String field) {
57
        return input.has(field) ? input.get(field).getAsString(): "";
62
        return input.has(field) ? input.get(field).getAsString() : "";
58 63
    }
59 64

  
60 65
    protected List<String> extractListValues(final JsonObject root, final String field) {
......
66 71
        return output;
67 72

  
68 73

  
69

  
70 74
    }
71 75
}

Also available in: Unified diff