Project

General

Profile

« Previous | Next » 

Revision 41160

BuildOperations to ClaimBuilder

View differences:

modules/uoa-claims -demo/claims-demo/src/main/java/eu/dnetlib/data/claimsDemo/BuildOperations.java
1
package eu.dnetlib.data.claimsDemo;
2

  
3
import eu.dnetlib.data.claims.migration.Claim;
4
import eu.dnetlib.data.claims.migration.Context;
5
import eu.dnetlib.data.claims.migration.Project;
6
import eu.dnetlib.data.claims.migration.Result;
7
import org.xml.sax.SAXException;
8

  
9
import javax.xml.parsers.ParserConfigurationException;
10
import java.io.BufferedWriter;
11
import java.io.FileWriter;
12
import java.io.IOException;
13
import java.io.PrintWriter;
14
import java.sql.ResultSet;
15
import java.sql.SQLException;
16
import java.sql.Timestamp;
17
import java.util.Date;
18

  
19
/**
20
 * Created by argirok on 24/11/2015.
21
 */
22
 /*
23
    Build operations is the class that is responsible for building of a claim Object
24
     given a tupple (rs) from the claim db.
25
 */
26
public class BuildOperations {
27
    private SqlDAO sqlDAO;
28
    public BuildOperations() {
29

  
30
    }
31

  
32
    public SqlDAO getSqlDAO() {
33
        return sqlDAO;
34
    }
35

  
36
    public void setSqlDAO(SqlDAO sqlDAO) {
37
        this.sqlDAO = sqlDAO;
38
    }
39

  
40

  
41
    public Result getDMFClaim(ResultSet rs) throws Exception {
42
        String xml = rs.getString("xml");
43
        Result r = ParsingClaimUtils.getResultFromDMF(xml);
44
        return r;
45
    }
46
    public Claim getConceptDMFClaim(ResultSet rs) throws Exception {
47
        Claim claim = new Claim();
48
        claim.setId(rs.getString("id"));
49
        claim.setDate(rs.getDate("date"));
50
        claim.setUserMail(rs.getString("agent"));
51
        String xml = rs.getString("xml");
52
        claim = ParsingClaimUtils.getClaimFromConceptDMF(claim, xml);
53
        claim.setTargetType(((Result) claim.getTarget()).getResultType());
54
        claim.setSourceType(ClaimUtils.CONTEXT);
55
        claim=this.enrichClaimFromDMFAndExternalSources(claim);
56
        return claim;
57
    }
58

  
59
    public Claim getRelationClaim(ResultSet rs) throws SQLException, IOException, SAXException, ParserConfigurationException {
60
        Claim claim = new Claim();
61
        claim.setId(rs.getString("id"));
62
        claim.setDate(rs.getDate("date"));
63
        claim.setUserMail(rs.getString("agent"));
64
        claim=ParsingClaimUtils.getRelationClaim(claim,rs.getString("xml"));
65
        claim=this.enrichClaimFromDMFAndExternalSources(claim);
66
        return claim;
67
    }
68
    public String getQueryInsertClaim(Claim claim) {
69
        if (claim.getSourceType().equals(ClaimUtils.CONTEXT)) {
70
            return sqlDAO.getQueryGenerator().insertClaimhasContext( (Result)claim.getTarget(), (Context) claim.getSource(), claim);
71
        } else if (claim.getSourceType().equals(ClaimUtils.PROJECT)) {
72
            return sqlDAO.getQueryGenerator().insertClaimhasProject( (Result)claim.getTarget(), (Project) claim.getSource(), claim);
73
        } else{
74
            return sqlDAO.getQueryGenerator().insertClaimhasResult( (Result)claim.getTarget(), (Result) claim.getSource(), claim);
75
        }
76
    }
77
@Deprecated
78
    private Claim enrichClaimFromDMF(Claim claim){
79
        if((claim.getSourceType()==null)||(claim.getSourceType().equals(ClaimUtils.PUBLICATION)||claim.getSourceType().equals(ClaimUtils.DATASET))){
80
            Result source=(Result)claim.getSource();
81
            claim.setSource(enrichResultFromDMF(claim.getId(), source));
82
            claim.setSourceType(((Result) claim.getSource()).getResultType());
83
        }
84
        if(claim.getTargetType()==null||(claim.getTargetType().equals(ClaimUtils.PUBLICATION)||claim.getTargetType().equals(ClaimUtils.DATASET))){
85
            Result target=(Result)claim.getTarget();
86
            claim.setTarget(enrichResultFromDMF(claim.getId(),target));
87
            claim.setTargetType(((Result) claim.getTarget()).getResultType());
88
        }
89
        return claim;
90
    }
91
    private Claim enrichClaimFromDMFAndExternalSources(Claim claim){
92
        if((claim.getSourceType()==null)||(claim.getSourceType().equals(ClaimUtils.PUBLICATION)||claim.getSourceType().equals(ClaimUtils.DATASET))){
93
            claim.setSource(enrichResultFromDMF(claim.getId(), (Result)claim.getSource()));
94
            if(((Result)claim.getSource()).getOpenaireId().contains("datacite")){
95
                claim.setSource(ParsingClaimUtils.getXmlfromDatacite(((Result)claim.getSource())));
96
            }else if(((Result)claim.getSource()).getOpenaireId().contains("crossref")){
97
                claim.setSource(ParsingClaimUtils.getJsonfromCrossref((Result) claim.getSource()));
98
            }
99
            claim.setSourceType(((Result) claim.getSource()).getResultType());
100
        }
101
        if(claim.getTargetType()==null||(claim.getTargetType().equals(ClaimUtils.PUBLICATION)||claim.getTargetType().equals(ClaimUtils.DATASET))){
102
            //Result target=(Result)claim.getTarget();
103
            claim.setTarget(enrichResultFromDMF(claim.getId(),(Result)claim.getTarget()));
104
            if(((Result) claim.getTarget()).getOpenaireId().contains("datacite")){
105
                claim.setTarget(ParsingClaimUtils.getXmlfromDatacite((Result) claim.getTarget()));
106
            }else if(((Result) claim.getTarget()).getOpenaireId().contains("crossref")){
107

  
108
                claim.setTarget(ParsingClaimUtils.getJsonfromCrossref((Result) claim.getTarget()));
109
            }
110
            claim.setTargetType(((Result) claim.getTarget()).getResultType());
111
        }
112
        return claim;
113
    }
114
    private Result enrichResultFromDMF(String claimId, Result r){
115
        try {
116
            /*if(r.getCollectedFrom().contains("::openaire")){
117
                return r;
118
            }*/
119
            r=checkForDOI(r);
120
            Result dmfResult=this.getDMFClaimById(r.getOpenaireId());
121
            if(dmfResult!=null){
122
                if(r.getResultType()==null){
123
                    r.setResultType(dmfResult.getResultType());
124
                }
125
                if(r.getTitle()==null){
126
                    r.setTitle(dmfResult.getTitle());
127
                }
128
                if(r.getDoi()==null){
129
                    r.setDoi(dmfResult.getDoi());
130
                }
131
                if(r.getAccessRights()==null){
132
                    r.setAccessRights(dmfResult.getAccessRights());
133
                }
134
                if(r.getEmbargoEndDate()==null){
135
                    r.setEmbargoEndDate(dmfResult.getEmbargoEndDate());
136
                }
137
                if(r.getExternal_url()==null){
138
                    r.setExternal_url(dmfResult.getExternal_url());
139
                }
140

  
141
                //we don't need the dmf
142
//                //TODO check when we should keep dmf in xml
143
//                if(!r.isFound()) {
144
//                    if(r.getCollectedFrom()==null){
145
//                        r.setCollectedFrom(dmfResult.getCollectedFrom());
146
//                    }
147
//                    r.setXml(dmfResult.getXml());
148
//                }
149

  
150
                try{
151
                    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("enriched_results.txt", true)));
152
                    Date date= new java.util.Date();
153
                    out.println(new Timestamp(date.getTime())+" - In claim - "+claimId+" result - "+r.getOpenaireId()+" enriched from dmf");
154
                    out.close();
155
                }catch (IOException e) {
156
                    e.printStackTrace();
157
                    System.err.println("Couldn't write to file " + "enriched_results.txt");
158
                }
159
            }
160
            r=checkForDOI(r);
161
            //if type is still null => decide on  provider
162
            if(r.getResultType()==null){
163
                if(r.getCollectedFrom()!=null) {
164
                    if ((r.getCollectedFrom().contains("crossref"))||( r.getCollectedFrom().contains("orcid") )) {
165
                        r.setResultType(ClaimUtils.PUBLICATION);
166
                    } else if (r.getCollectedFrom().contains("datacite") ) {
167
                        r.setResultType(ClaimUtils.DATASET);
168
                    }else{
169
                        r.setResultType("unknown");
170
                    }
171
                }else{
172
                    if (( r.getOpenaireId().contains("crossref") )||(  r.getOpenaireId().contains("orcid") )) {
173
                        r.setResultType(ClaimUtils.PUBLICATION);
174
                    } else if ( r.getOpenaireId().contains("datacite") ) {
175
                        r.setResultType(ClaimUtils.DATASET);
176
                    }else{
177
                        r.setResultType("unknown");
178
                    }
179
                }
180
            }
181
            return r;
182
        } catch (Exception e) {
183
            e.printStackTrace();
184
            return r;
185
        }
186
    }
187
    /*
188
    Checks if the doi is valid. If it is not  then replaces the DOI with the valid one.
189
     */
190
    private Result checkForDOI(Result r) throws Exception {
191
        if(r.getDoi()==null){
192
            return r;
193
        }
194
        SearchUtils s= new SearchUtils();
195
        String validDOI=s.isValidDoi(r.getDoi());
196
        if(!validDOI.equals(r.getDoi())){
197
            if(r.getXml()!=null) {
198
                r.setXml(r.getXml().replace(r.getDoi(), validDOI));
199
            }
200
            if(r.getExternal_url()!=null){
201
                r.setExternal_url(r.getExternal_url().replace(r.getDoi(), validDOI));
202
            }
203
            r.setDoi(validDOI);
204
        }
205
        return r;
206
    }
207
    public Result getDMFClaimById(String resultId) throws Exception {
208
        ResultSet rs=sqlDAO.executePreparedQuery(sqlDAO.getQueryGenerator().selectDMFById(resultId));
209
        Result r =null;
210
        if(rs.next()) {
211
            r = this.getDMFClaim(rs);
212
        }
213
        return r;
214
    }
215
}
modules/uoa-claims -demo/claims-demo/src/main/java/eu/dnetlib/data/claims/migration/QueryBuilder.java
1 1
package eu.dnetlib.data.claims.migration;
2 2

  
3
import eu.dnetlib.data.claimsDemo.BuildOperations;
3
import eu.dnetlib.data.claimsDemo.ClaimBuilder;
4 4
import eu.dnetlib.data.claimsDemo.ClaimUtils;
5 5
import eu.dnetlib.data.claimsDemo.SqlDAO;
6 6
import org.apache.commons.io.FileUtils;
......
22 22

  
23 23
    private Logger log = Logger.getLogger(this.getClass());
24 24
    private SqlDAO sqlDAO;
25
    private BuildOperations buildOperations;
25
    private ClaimBuilder claimBuilder;
26 26
    private ClaimValidation claimValidation;
27 27
    public QueryBuilder(){
28 28
    }
......
37 37
        ResultSet rs=sqlDAO.executePreparedQuery(sqlDAO.getQueryGenerator().selectConceptDMFClaims(limit));
38 38
        while(rs.next()){
39 39
           // log.info(rs.getString("xml"));
40
            Claim claim= buildOperations.getConceptDMFClaim(rs);
40
            Claim claim= claimBuilder.getConceptDMFClaim(rs);
41 41
//           log.info(claim.toString());
42 42
            //log.info(JsonldBuilder.toJsonld(claim));
43 43
             if(claimValidation.validateClaim(claim)) {
44 44
                if (insertToDB) {
45 45
                    claim= createXMLFilesForClaim(claim);
46 46
                    //log.info(buildOperations.getQueryInsertClaim(claim));
47
                    sqlDAO.executeUpdateQuery(buildOperations.getQueryInsertClaim(claim));
47
                    sqlDAO.executeUpdateQuery(claimBuilder.getQueryInsertClaim(claim));
48 48
                }
49 49
            }
50 50
        }
......
61 61

  
62 62
    public void transformRelationClaims(ResultSet rs, boolean insertToDB) throws Exception {
63 63
         while(rs.next()){
64
            Claim claim = buildOperations.getRelationClaim(rs);
64
            Claim claim = claimBuilder.getRelationClaim(rs);
65 65
            log.info(claim.toString());
66 66
            if(claimValidation.validateClaim(claim)) {
67 67
                if (insertToDB) {
68 68
                    claim= createXMLFilesForClaim(claim);
69 69
                    // log.info(buildOperations.getQueryInsertClaim(claim));
70
                    sqlDAO.executeUpdateQuery(buildOperations.getQueryInsertClaim(claim));
70
                    sqlDAO.executeUpdateQuery(claimBuilder.getQueryInsertClaim(claim));
71 71
                }
72 72
            }
73 73
        }
......
87 87
            String xml=rs.getString("xml");
88 88
            if(claimType!=null && claimType.equals("rels2actions")){
89 89
                log.info("*Relation *");
90
                Claim claim= buildOperations.getRelationClaim(rs);
90
                Claim claim= claimBuilder.getRelationClaim(rs);
91 91
                //log.info(JsonldBuilder.toJsonld(claim));
92 92
                log.info(claim.toString());
93 93
                if(claimValidation.validateClaim(claim)) {
......
101 101
                //type ="dmf2actions"
102 102
                if(xml!=null && xml.contains("<oaf:concept")){
103 103
                    log.info("* Context *");
104
                    Claim claim= buildOperations.getConceptDMFClaim(rs);
104
                    Claim claim= claimBuilder.getConceptDMFClaim(rs);
105 105
                    log.info(claim.toString());
106 106
                    if(claimValidation.validateClaim(claim)) {
107 107
                        if (insertToDB) {
......
112 112
                    }
113 113
                }else{
114 114
                    log.info("* DMF *");
115
                    log.info(buildOperations.getDMFClaim(rs).toString());
115
                    log.info(claimBuilder.getDMFClaim(rs).toString());
116 116
                }
117 117
            }
118 118
        }
......
120 120
    public void getAndTransformDMFClaims(Integer limit) throws Exception {
121 121
        ResultSet rs=sqlDAO.executePreparedQuery("Select * from claims_view  where type='dmf2actions' and xml NOT ILIKE '%concept%' limit "+limit);
122 122
          while(rs.next()){
123
             Result r= buildOperations.getDMFClaim(rs);
123
             Result r= claimBuilder.getDMFClaim(rs);
124 124
              log.info(r.toString());
125 125
        }
126 126
    }
......
171 171
        this.sqlDAO = sqlDAO;
172 172
    }
173 173

  
174
    public BuildOperations getBuildOperations() {
175
        return buildOperations;
174
    public ClaimBuilder getClaimBuilder() {
175
        return claimBuilder;
176 176
    }
177 177

  
178
    public void setBuildOperations(BuildOperations buildOperations) {
179
        this.buildOperations = buildOperations;
178
    public void setClaimBuilder(ClaimBuilder claimBuilder) {
179
        this.claimBuilder = claimBuilder;
180 180
    }
181 181

  
182 182
    public ClaimValidation getClaimValidation() {
modules/uoa-claims -demo/claims-demo/src/main/java/eu/dnetlib/data/claimsDemo/TestClass.java
35 35
	private Logger log = Logger.getLogger(this.getClass());
36 36

  
37 37
    @Autowired
38
    private BuildOperations buildOperations;
38
    private ClaimBuilder claimBuilder;
39 39

  
40 40
    @Autowired
41 41
    private QueryBuilder queryBuilder;
......
48 48
	public void init() throws Exception {
49 49
		BasicConfigurator.configure();
50 50
		assertNotNull(sqlDAO);
51
        assertNotNull(buildOperations);
51
        assertNotNull(claimBuilder);
52 52
        assertNotNull(queryBuilder);
53 53

  
54 54
	}
modules/uoa-claims -demo/claims-demo/src/main/java/eu/dnetlib/data/claimsDemo/ClaimBuilder.java
1
package eu.dnetlib.data.claimsDemo;
2

  
3
import eu.dnetlib.data.claims.migration.Claim;
4
import eu.dnetlib.data.claims.migration.Context;
5
import eu.dnetlib.data.claims.migration.Project;
6
import eu.dnetlib.data.claims.migration.Result;
7
import org.xml.sax.SAXException;
8

  
9
import javax.xml.parsers.ParserConfigurationException;
10
import java.io.BufferedWriter;
11
import java.io.FileWriter;
12
import java.io.IOException;
13
import java.io.PrintWriter;
14
import java.sql.ResultSet;
15
import java.sql.SQLException;
16
import java.sql.Timestamp;
17
import java.util.Date;
18

  
19
/**
20
 * Created by argirok on 24/11/2015.
21
 */
22
 /*
23
    Build operations is the class that is responsible for building of a claim Object
24
     given a tupple (rs) from the claim db.
25
 */
26
public class ClaimBuilder {
27
    private SqlDAO sqlDAO;
28
    public ClaimBuilder() {
29

  
30
    }
31

  
32
    public SqlDAO getSqlDAO() {
33
        return sqlDAO;
34
    }
35

  
36
    public void setSqlDAO(SqlDAO sqlDAO) {
37
        this.sqlDAO = sqlDAO;
38
    }
39

  
40

  
41
    public Result getDMFClaim(ResultSet rs) throws Exception {
42
        String xml = rs.getString("xml");
43
        Result r = ParsingClaimUtils.getResultFromDMF(xml);
44
        return r;
45
    }
46
    public Claim getConceptDMFClaim(ResultSet rs) throws Exception {
47
        Claim claim = new Claim();
48
        claim.setId(rs.getString("id"));
49
        claim.setDate(rs.getDate("date"));
50
        claim.setUserMail(rs.getString("agent"));
51
        String xml = rs.getString("xml");
52
        claim = ParsingClaimUtils.getClaimFromConceptDMF(claim, xml);
53
        claim.setTargetType(((Result) claim.getTarget()).getResultType());
54
        claim.setSourceType(ClaimUtils.CONTEXT);
55
        claim=this.enrichClaimFromDMFAndExternalSources(claim);
56
        return claim;
57
    }
58

  
59
    public Claim getRelationClaim(ResultSet rs) throws SQLException, IOException, SAXException, ParserConfigurationException {
60
        Claim claim = new Claim();
61
        claim.setId(rs.getString("id"));
62
        claim.setDate(rs.getDate("date"));
63
        claim.setUserMail(rs.getString("agent"));
64
        claim=ParsingClaimUtils.getRelationClaim(claim,rs.getString("xml"));
65
        claim=this.enrichClaimFromDMFAndExternalSources(claim);
66
        return claim;
67
    }
68
    public String getQueryInsertClaim(Claim claim) {
69
        if (claim.getSourceType().equals(ClaimUtils.CONTEXT)) {
70
            return sqlDAO.getQueryGenerator().insertClaimhasContext( (Result)claim.getTarget(), (Context) claim.getSource(), claim);
71
        } else if (claim.getSourceType().equals(ClaimUtils.PROJECT)) {
72
            return sqlDAO.getQueryGenerator().insertClaimhasProject( (Result)claim.getTarget(), (Project) claim.getSource(), claim);
73
        } else{
74
            return sqlDAO.getQueryGenerator().insertClaimhasResult( (Result)claim.getTarget(), (Result) claim.getSource(), claim);
75
        }
76
    }
77
@Deprecated
78
    private Claim enrichClaimFromDMF(Claim claim){
79
        if((claim.getSourceType()==null)||(claim.getSourceType().equals(ClaimUtils.PUBLICATION)||claim.getSourceType().equals(ClaimUtils.DATASET))){
80
            Result source=(Result)claim.getSource();
81
            claim.setSource(enrichResultFromDMF(claim.getId(), source));
82
            claim.setSourceType(((Result) claim.getSource()).getResultType());
83
        }
84
        if(claim.getTargetType()==null||(claim.getTargetType().equals(ClaimUtils.PUBLICATION)||claim.getTargetType().equals(ClaimUtils.DATASET))){
85
            Result target=(Result)claim.getTarget();
86
            claim.setTarget(enrichResultFromDMF(claim.getId(),target));
87
            claim.setTargetType(((Result) claim.getTarget()).getResultType());
88
        }
89
        return claim;
90
    }
91
    private Claim enrichClaimFromDMFAndExternalSources(Claim claim){
92
        if((claim.getSourceType()==null)||(claim.getSourceType().equals(ClaimUtils.PUBLICATION)||claim.getSourceType().equals(ClaimUtils.DATASET))){
93
            claim.setSource(enrichResultFromDMF(claim.getId(), (Result)claim.getSource()));
94
            if(((Result)claim.getSource()).getOpenaireId().contains("datacite")){
95
                claim.setSource(ParsingClaimUtils.getXmlfromDatacite(((Result)claim.getSource())));
96
            }else if(((Result)claim.getSource()).getOpenaireId().contains("crossref")){
97
                claim.setSource(ParsingClaimUtils.getJsonfromCrossref((Result) claim.getSource()));
98
            }
99
            claim.setSourceType(((Result) claim.getSource()).getResultType());
100
        }
101
        if(claim.getTargetType()==null||(claim.getTargetType().equals(ClaimUtils.PUBLICATION)||claim.getTargetType().equals(ClaimUtils.DATASET))){
102
            //Result target=(Result)claim.getTarget();
103
            claim.setTarget(enrichResultFromDMF(claim.getId(),(Result)claim.getTarget()));
104
            if(((Result) claim.getTarget()).getOpenaireId().contains("datacite")){
105
                claim.setTarget(ParsingClaimUtils.getXmlfromDatacite((Result) claim.getTarget()));
106
            }else if(((Result) claim.getTarget()).getOpenaireId().contains("crossref")){
107

  
108
                claim.setTarget(ParsingClaimUtils.getJsonfromCrossref((Result) claim.getTarget()));
109
            }
110
            claim.setTargetType(((Result) claim.getTarget()).getResultType());
111
        }
112
        return claim;
113
    }
114
    private Result enrichResultFromDMF(String claimId, Result r){
115
        try {
116
            /*if(r.getCollectedFrom().contains("::openaire")){
117
                return r;
118
            }*/
119
            r=checkForDOI(r);
120
            Result dmfResult=this.getDMFClaimById(r.getOpenaireId());
121
            if(dmfResult!=null){
122
                if(r.getResultType()==null){
123
                    r.setResultType(dmfResult.getResultType());
124
                }
125
                if(r.getTitle()==null){
126
                    r.setTitle(dmfResult.getTitle());
127
                }
128
                if(r.getDoi()==null){
129
                    r.setDoi(dmfResult.getDoi());
130
                }
131
                if(r.getAccessRights()==null){
132
                    r.setAccessRights(dmfResult.getAccessRights());
133
                }
134
                if(r.getEmbargoEndDate()==null){
135
                    r.setEmbargoEndDate(dmfResult.getEmbargoEndDate());
136
                }
137
                if(r.getExternal_url()==null){
138
                    r.setExternal_url(dmfResult.getExternal_url());
139
                }
140

  
141
                //we don't need the dmf
142
//                //TODO check when we should keep dmf in xml
143
//                if(!r.isFound()) {
144
//                    if(r.getCollectedFrom()==null){
145
//                        r.setCollectedFrom(dmfResult.getCollectedFrom());
146
//                    }
147
//                    r.setXml(dmfResult.getXml());
148
//                }
149

  
150
                try{
151
                    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("enriched_results.txt", true)));
152
                    Date date= new java.util.Date();
153
                    out.println(new Timestamp(date.getTime())+" - In claim - "+claimId+" result - "+r.getOpenaireId()+" enriched from dmf");
154
                    out.close();
155
                }catch (IOException e) {
156
                    e.printStackTrace();
157
                    System.err.println("Couldn't write to file " + "enriched_results.txt");
158
                }
159
            }
160
            r=checkForDOI(r);
161
            //if type is still null => decide on  provider
162
            if(r.getResultType()==null){
163
                if(r.getCollectedFrom()!=null) {
164
                    if ((r.getCollectedFrom().contains("crossref"))||( r.getCollectedFrom().contains("orcid") )) {
165
                        r.setResultType(ClaimUtils.PUBLICATION);
166
                    } else if (r.getCollectedFrom().contains("datacite") ) {
167
                        r.setResultType(ClaimUtils.DATASET);
168
                    }else{
169
                        r.setResultType("unknown");
170
                    }
171
                }else{
172
                    if (( r.getOpenaireId().contains("crossref") )||(  r.getOpenaireId().contains("orcid") )) {
173
                        r.setResultType(ClaimUtils.PUBLICATION);
174
                    } else if ( r.getOpenaireId().contains("datacite") ) {
175
                        r.setResultType(ClaimUtils.DATASET);
176
                    }else{
177
                        r.setResultType("unknown");
178
                    }
179
                }
180
            }
181
            return r;
182
        } catch (Exception e) {
183
            e.printStackTrace();
184
            return r;
185
        }
186
    }
187
    /*
188
    Checks if the doi is valid. If it is not  then replaces the DOI with the valid one.
189
     */
190
    private Result checkForDOI(Result r) throws Exception {
191
        if(r.getDoi()==null){
192
            return r;
193
        }
194
        SearchUtils s= new SearchUtils();
195
        String validDOI=s.isValidDoi(r.getDoi());
196
        if(!validDOI.equals(r.getDoi())){
197
            if(r.getXml()!=null) {
198
                r.setXml(r.getXml().replace(r.getDoi(), validDOI));
199
            }
200
            if(r.getExternal_url()!=null){
201
                r.setExternal_url(r.getExternal_url().replace(r.getDoi(), validDOI));
202
            }
203
            r.setDoi(validDOI);
204
        }
205
        return r;
206
    }
207
    public Result getDMFClaimById(String resultId) throws Exception {
208
        ResultSet rs=sqlDAO.executePreparedQuery(sqlDAO.getQueryGenerator().selectDMFById(resultId));
209
        Result r =null;
210
        if(rs.next()) {
211
            r = this.getDMFClaim(rs);
212
        }
213
        return r;
214
    }
215
}
modules/uoa-claims -demo/claims-demo/src/main/resources/eu/dnetlib/data/claimsDemo/springContext-claimsDemo.xml
29 29
    <bean id="claimValidation" class="eu.dnetlib.data.claims.migration.ClaimValidation">
30 30
    </bean>
31 31

  
32
    <bean id="buildOperations" class="eu.dnetlib.data.claimsDemo.BuildOperations">
32
    <bean id="claimBuilder" class="eu.dnetlib.data.claimsDemo.ClaimBuilder">
33 33
        <property name="sqlDAO" ref="sqlDao"/>
34 34
    </bean>
35 35

  
36 36

  
37 37
    <bean id="queryBuilder" class="eu.dnetlib.data.claims.migration.QueryBuilder">
38 38
        <property name="sqlDAO" ref="sqlDao"/>
39
        <property name="buildOperations" ref="buildOperations"/>
39
        <property name="claimBuilder" ref="claimBuilder"/>
40 40
        <property name="claimValidation" ref="claimValidation"/>
41 41
    </bean>
42 42

  

Also available in: Unified diff