Project

General

Profile

« Previous | Next » 

Revision 54287

added Crossref Event Data

View differences:

DataciteOfflineResolver.java
7 7
import com.mongodb.client.FindIterable;
8 8
import com.mongodb.client.MongoCollection;
9 9
import com.mongodb.client.model.Filters;
10
import eu.dnetlib.dli.resolver.model.CompletionStatus;
10 11
import eu.dnetlib.dli.resolver.model.DLIObjectProvenance;
11 12
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
12 13
import eu.dnetlib.enabling.tools.DnetStreamSupport;
......
16 17
import org.apache.commons.logging.Log;
17 18
import org.apache.commons.logging.LogFactory;
18 19
import org.bson.Document;
20
import org.springframework.beans.factory.annotation.Required;
19 21
import org.springframework.beans.factory.annotation.Value;
20 22

  
21 23

  
22 24
import java.util.List;
25
import java.util.Objects;
23 26
import java.util.stream.Collectors;
24 27

  
25 28

  
......
55 58
                return parseResponse(result);
56 59
            }
57 60
        } catch (Throwable e) {
58
            log.error("Error on getting item with Pid: " +  pid);
61
            log.error("Error on getting item with Pid: " +  pid, e);
59 62
        }
60 63
        return null;
61 64
    }
......
78 81
            dli.setSubjects(
79 82
                    DnetStreamSupport.generateStreamFromIterator(root.getAsJsonArray("subjects").iterator())
80 83
                    .map(JsonElement::getAsJsonObject)
81
                    .map(it -> new SubjectType(it.get("scheme").getAsString(), it.get("term").getAsString()))
84
                    .map(this::createSubjectType)
85
                    .filter(Objects::nonNull)
82 86
                    .collect(Collectors.toList())
83 87
            );
84 88
        }
85
        dli.setDatasourceProvenance(
86
                DnetStreamSupport.generateStreamFromIterator(root.getAsJsonArray("datasourceProvenance").iterator())
87
                .map(JsonElement::getAsJsonObject)
88
                .map(it -> {
89
                    final DLIObjectProvenance provenance =new DLIObjectProvenance();
90
                    provenance.setDatasourceId(it.get("datasourceId").getAsString());
91
                    provenance.setCompletionStatus(it.get("completionStatus").getAsString());
92
                    provenance.setProvisionMode(it.get("provisionMode").getAsString());
93
                    provenance.setDatasource(it.get("datasource").getAsString());
94
                    provenance.setPublisher(getStringValue(it, "publisher"));
95
                    return provenance;
96
                })
97
                .collect(Collectors.toList())
98
        );
89
        dli.setDatasourceProvenance(A);
90
        dli.setCompletionStatus(CompletionStatus.complete.toString());
99 91
        return dli;
100 92
    }
101 93

  
94
    private SubjectType createSubjectType(final JsonObject item){
95
        if (item.has("term") && !item.get("term").isJsonNull())
96
            return new SubjectType(item.get("scheme").getAsString(), item.get("term").getAsString());
97
        else {
98
            return null;
99
        }
100
    }
101

  
102 102
    private List<String> getStringValues(final JsonObject root, final String key) {
103 103

  
104 104
        if (root.has(key) && root.get(key).isJsonArray()) {
......
127 127

  
128 128
    }
129 129

  
130

  
130
    @Required
131 131
    public void setMongoClient(final MongoClient client) {
132 132
        this.client = client;
133 133
    }

Also available in: Unified diff