Project

General

Profile

1
package eu.dnetlib.clients.data.datasourcemanager.ws;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import org.apache.log4j.Logger;
7

    
8
import eu.dnetlib.domain.data.Repository;
9
import eu.dnetlib.domain.data.RepositoryInterface;
10
import eu.dnetlib.enabling.datasources.rmi.DatasourceDesc;
11
import eu.dnetlib.enabling.datasources.rmi.IfaceDesc;
12

    
13
public class Converter {
14

    
15
    private static Logger logger = Logger.getLogger(Converter.class);
16

    
17
    public static Repository convertToValRepo(DatasourceDesc from) {
18
        logger.debug("Converting the repository to Validator format");
19
        Repository repo = new Repository();
20
        repo.setId(from.getId());
21
        repo.setOfficialName(from.getOfficialName());
22
        repo.setEnglishName(from.getEnglishName());
23
        repo.setWebsiteUrl(from.getWebsiteUrl());
24
        repo.setLogoUrl(from.getLogoUrl());
25
        repo.setContactEmail(from.getContactEmail());
26
        repo.setCountryName(from.getCountryName());
27
        repo.setCountryCode(from.getCountryCode());
28
        repo.setOrganization(from.getOrganization());
29
        repo.setLatitude(from.getLatitude());
30
        repo.setLongitude(from.getLongitude());
31
        repo.setTimezone(from.getTimezone());
32
        repo.setNamespacePrefix(from.getNamespacePrefix());
33
        repo.setOdNumberOfItems(from.getOdNumberOfItems());
34
        repo.setOdNumberOfItemsDate(from.getOdNumberOfItemsDate());
35
        repo.setOdPolicies(from.getOdPolicies());
36
        repo.setOdLanguages(from.getOdLanguages());
37
        repo.setOdContentTypes(from.getOdContentTypes());
38
        repo.setCollectedFrom(from.getCollectedFrom());
39
        repo.setInferred(from.isInferred());
40
        repo.setDeletedByInference(from.isDeletedByInference());
41
        repo.setTrust(from.getTrust());
42
        repo.setTrust(0.9);
43
        repo.setInferenceProvenance(from.getInferenceProvenance());
44
        repo.setDateOfValidation(from.getDateOfValidation());
45
        repo.setDatasourceClass(from.getDatasourceClass());
46
        repo.setProvenanceActionClass(from.getProvenanceActionClass());
47
        repo.setDateOfCollection(from.getDateOfCollection());
48
        repo.setTypology(from.getTypology());
49
        repo.setActivationId(from.getActivationId());
50
        repo.setMergehomonyms(from.isMergehomonyms());
51
        repo.setDescription(from.getDescription());
52
        repo.setReleaseStartDate(from.getReleaseStartDate());
53
        repo.setReleaseEndDate(from.getReleaseEndDate());
54
        repo.setMissionStatementUrl(from.getMissionStatementUrl());
55
        repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
56
        repo.setDataProvider(from.isDataProvider());
57
        repo.setServiceProvider(from.isServiceProvider());
58
        repo.setDatabaseAccessType(from.getDatabaseAccessType());
59
        repo.setDataUploadType(from.getDataUploadType());
60
        repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
61
        repo.setDataUploadRestriction(from.getDataUploadRestriction());
62
        repo.setVersioning(from.isVersioning());
63
        repo.setCitationGuidelineUrl(from.getCitationGuidelineUrl());
64
        repo.setQualityManagementKind(from.getQualityManagementKind());
65
        repo.setPidSystems(from.getPidSystems());
66
        repo.setCertificates(from.getCertificates());
67
        repo.setAggregator(from.getAggregator());
68
        repo.setIssn(from.getIssn());
69
        repo.setEissn(from.getEissn());
70
        repo.setLissn(from.getLissn());
71
        repo.setRegisteredBy(from.getRegisteredBy());
72

    
73
        repo.setInterfaces(convertToValIfaceList(from.getInterfaces()));
74

    
75
        //TODO remove it when isRegistered is provided my DMS
76
        repo.setRegistered(false);
77
        for (RepositoryInterface iFace : repo.getInterfaces()) {
78
            if (!iFace.getCompliance().equalsIgnoreCase("UNKNOWN")) {
79
                repo.setRegistered(true);
80
                break;
81
            }
82
        }
83

    
84
        String type = "unknown";
85
        if (repo.getCollectedFrom() != null) {
86
            if (repo.getCollectedFrom().equals("openaire____::opendoar"))
87
                type = "opendoar";
88
            else if (repo.getCollectedFrom().equals("openaire____::re3data"))
89
                type = "re3data";
90
            else {
91
                if (repo.getId().startsWith("openaire____::issn"))
92
                    type = "journal";
93
                else
94
                    type = "aggregator";
95
            }
96
        }
97
        repo.setDatasourceType(type);
98

    
99
        return repo;
100
    }
101

    
102
    public static DatasourceDesc convertToDsmRepo(Repository from) {
103
        logger.debug("Converting the repository to Dsm format");
104
        DatasourceDesc repo = new DatasourceDesc();
105
        repo.setId(from.getId());
106
        repo.setOfficialName(from.getOfficialName());
107
        repo.setEnglishName(from.getEnglishName());
108
        repo.setWebsiteUrl(from.getWebsiteUrl());
109
        repo.setLogoUrl(from.getLogoUrl());
110
        repo.setContactEmail(from.getContactEmail());
111
        repo.setCountryName(from.getCountryName());
112
        repo.setCountryCode(from.getCountryCode());
113
        repo.setOrganization(from.getOrganization());
114
        repo.setLatitude(from.getLatitude());
115
        repo.setLongitude(from.getLongitude());
116
        repo.setTimezone(from.getTimezone());
117
        repo.setNamespacePrefix(from.getNamespacePrefix());
118
        repo.setOdNumberOfItems(from.getOdNumberOfItems());
119
        repo.setOdNumberOfItemsDate(from.getOdNumberOfItemsDate());
120
        repo.setOdPolicies(from.getOdPolicies());
121
        repo.setOdLanguages(from.getOdLanguages());
122
        repo.setOdContentTypes(from.getOdContentTypes());
123
        repo.setCollectedFrom(from.getCollectedFrom());
124
        repo.setInferred(from.getInferred());
125
        repo.setInferred(false);
126
        repo.setDeletedByInference(from.getDeletedByInference());
127
        repo.setDeletedByInference(false);
128
        repo.setTrust(from.getTrust());
129
        repo.setTrust(0.9);
130
        repo.setInferenceProvenance(from.getInferenceProvenance());
131
        repo.setDateOfValidation(from.getDateOfValidation());
132
        repo.setDatasourceClass(from.getDatasourceClass());
133
        repo.setProvenanceActionClass(from.getProvenanceActionClass());
134
        repo.setDateOfCollection(from.getDateOfCollection());
135
        repo.setTypology(from.getTypology());
136
        repo.setActivationId(from.getActivationId());
137
        repo.setMergehomonyms(from.getMergehomonyms());
138
        repo.setMergehomonyms(true);
139
        repo.setDescription(from.getDescription());
140
        repo.setReleaseStartDate(from.getReleaseStartDate());
141
        repo.setReleaseEndDate(from.getReleaseEndDate());
142
        repo.setMissionStatementUrl(from.getMissionStatementUrl());
143
        repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
144
        repo.setDataProvider(from.getDataProvider());
145
        repo.setDataProvider(false);
146
        repo.setServiceProvider(from.getServiceProvider());
147
        repo.setServiceProvider(false);
148
        repo.setDatabaseAccessType(from.getDatabaseAccessType());
149
        repo.setDataUploadType(from.getDataUploadType());
150
        repo.setDatabaseAccessRestriction(from.getDatabaseAccessRestriction());
151
        repo.setDataUploadRestriction(from.getDataUploadRestriction());
152
        repo.setVersioning(from.getVersioning());
153
        repo.setVersioning(false);
154
        repo.setCitationGuidelineUrl(from.getCitationGuidelineUrl());
155
        repo.setQualityManagementKind(from.getQualityManagementKind());
156
        repo.setPidSystems(from.getPidSystems());
157
        repo.setCertificates(from.getCertificates());
158
        repo.setAggregator(from.getAggregator());
159
        repo.setIssn(from.getIssn());
160
        repo.setEissn(from.getEissn());
161
        repo.setLissn(from.getLissn());
162
        repo.setRegisteredBy(from.getRegisteredBy());
163

    
164
        repo.setInterfaces(convertToDsmIfaceList(from.getInterfaces()));
165

    
166
        return repo;
167
    }
168

    
169
    public static RepositoryInterface convertToValIface(IfaceDesc from) {
170
        logger.debug("Converting the interface to Validator format");
171
        RepositoryInterface newIface = new RepositoryInterface();
172
        if (from == null) {
173
            logger.debug("iface 'from' iss null!!");
174
        } else {
175

    
176
            if (from.getId() == null) {
177
                logger.debug("iface ID is null ");
178
            } else {
179
                logger.debug("iface ID: " + from.getId());
180
            }
181
            newIface.setId(from.getId());
182
            newIface.setTypology(from.getTypology());
183
            newIface.setCompliance(from.getCompliance());
184
            newIface.setBaseUrl(from.getBaseUrl());
185
            newIface.setAccessProtocol(from.getAccessProtocol());
186
            newIface.setActive(from.getActive());
187
            newIface.setContentDescription(from.getContentDescription());
188
            newIface.setRemovable(from.getRemovable());
189
            newIface.setExtraFields(from.getExtraFields());
190
            newIface.setAccessParams(from.getAccessParams());
191
        }
192
        return newIface;
193

    
194
    }
195

    
196
    public static IfaceDesc convertToDsmIface(RepositoryInterface from) {
197
        logger.debug("Converting the interface to Dsm format");
198
        IfaceDesc newIface = new IfaceDesc();
199
        try {
200
            newIface.setId(from.getId());
201
            newIface.setTypology(from.getTypology());
202
            newIface.setCompliance(from.getCompliance());
203
            newIface.setBaseUrl(from.getBaseUrl());
204
            newIface.setAccessProtocol(from.getAccessProtocol());
205
            newIface.setActive(from.isActive());
206
            newIface.setContentDescription(from.getContentDescription());
207
            newIface.setRemovable(from.isRemovable());
208
            newIface.setExtraFields(from.getExtraFields());
209
            newIface.setAccessParams(from.getAccessParams());
210

    
211
//		logger.error("api_id: " + newIface.getId());
212
//		logger.error("baseUrl: " + newIface.getBaseUrl());
213
//		logger.error("format: " + newIface.getAccessParams().get("FORMAT"));
214
//		logger.error("set: " + newIface.getAccessParams().get("SET"));
215
//		logger.error("typology: " + newIface.getTypology());
216
//		logger.error("compliance: " + newIface.getCompliance());
217
//		logger.error("protocol: " + newIface.getAccessProtocol());
218
//		logger.error("description: " + newIface.getContentDescription());
219
//		logger.error("removable: " + newIface.getRemovable());
220
//		logger.error("active: " + newIface.getActive());
221
        } catch (Exception e) {
222
            logger.error("Converting the interface to Dsm format " + e);
223
        }
224
        return newIface;
225

    
226
    }
227

    
228
    public static List<RepositoryInterface> convertToValIfaceList(List<IfaceDesc> fromList) {
229
        logger.debug("Converting the interfaces to Validation format");
230
        logger.debug("Number of interfaces to be converted: " + fromList.size());
231
        List<RepositoryInterface> interfaces = new ArrayList<RepositoryInterface>();
232
        for (IfaceDesc from : fromList) {
233
            if (from == null) {
234
                logger.debug("iface is null: ");
235
            }
236
            interfaces.add(convertToValIface(from));
237
        }
238
        return interfaces;
239
    }
240

    
241
    public static List<IfaceDesc> convertToDsmIfaceList(List<RepositoryInterface> fromList) {
242
        logger.debug("Converting the interfaces to dsm format");
243
        logger.debug("Number of interfaces to be converted: " + fromList.size());
244
        List<IfaceDesc> interfaces = new ArrayList<IfaceDesc>();
245
        for (RepositoryInterface from : fromList) {
246
            interfaces.add(convertToDsmIface(from));
247
        }
248

    
249
        return interfaces;
250
    }
251

    
252
    public static List<Repository> convertToValRepoList(List<DatasourceDesc> fromList) {
253
        logger.debug("Converting the repositories to Validation format");
254
        logger.debug("Number of repositories to be converted: " + fromList.size());
255
        List<Repository> retList = new ArrayList<Repository>();
256
        for (DatasourceDesc from : fromList) {
257
            retList.add(convertToValRepo(from));
258
        }
259
        return retList;
260
    }
261

    
262
    public static List<DatasourceDesc> convertToDsmRepoList(List<Repository> fromList) {
263
        logger.debug("Converting the repositories to Dsm format");
264
        logger.debug("Number of repositories to be converted: " + fromList.size());
265
        List<DatasourceDesc> retList = new ArrayList<DatasourceDesc>();
266
        for (Repository from : fromList) {
267
            retList.add(convertToDsmRepo(from));
268
        }
269
        return retList;
270
    }
271

    
272

    
273
}
(1-1/2)