Project

General

Profile

1
package eu.dnetlib.data.claims.migration;
2

    
3
import eu.dnetlib.data.claimsDemo.ClaimUtils;
4

    
5
import java.io.BufferedWriter;
6
import java.io.FileWriter;
7
import java.io.IOException;
8
import java.io.PrintWriter;
9
import java.sql.Timestamp;
10
import java.util.Date;
11

    
12
/**
13
 * Created by argirok on 21/1/2016.
14
 */
15
public class ClaimValidation {
16
    private PrintWriter out;
17

    
18

    
19
    /*
20
    Claim:
21
    Mandatory Fields : id, sourceType,targetType, User e-mail, Date, Target, Source
22

    
23
    */
24
    public  boolean validateClaim(Claim claim){
25
        boolean isValid=true;
26
        try{
27
            out = new PrintWriter(new BufferedWriter(new FileWriter("validationFile.txt", true)));
28
            if(claim==null){
29
                isValid=false;
30
                 out.println("Claim invalid (null)..." );
31
            }else if(claim.getId()==null||claim.getId().isEmpty()){
32
                isValid=false;
33
                 out.println("Claim invalid  (id)..." );
34
             }else if(claim.getTargetType()==null||claim.getTargetType().isEmpty()){
35
                isValid=false;
36
                out.println("Claim invalid (target type): "+claim.getId());
37
            }else if(claim.getSourceType()==null||claim.getSourceType().isEmpty()){
38
                isValid=false;
39
                out.println("Claim invalid (source type): "+claim.getId());
40
            }else if(claim.getDate()==null){
41
                isValid=false;
42
                out.println("Claim invalid (date): "+claim.getId());
43
            }else if(claim.getUserMail()==null||claim.getUserMail().isEmpty()){
44
                isValid=false;
45
                out.println("Claim invalid (mail): "+claim.getId());
46
            }else if(claim.getSource()==null || claim.getTarget()==null){
47
                isValid=false;
48
                out.println("Result invalid : "+claim.getId());
49
            }else{
50
                boolean sourceIsValid=validateByType(claim.getSource(),claim.getSourceType(),claim.getId());
51
                boolean targetIsValid=validateByType(claim.getTarget(),claim.getTargetType(),claim.getId());
52
                isValid= isValid&&sourceIsValid&&targetIsValid;
53
                 if(!isValid){
54
                     out.println("Claim invalid (source /target): "+claim.getId()+"\n");
55
                 }
56
            }
57
            out.close();
58
        }catch (IOException e) {
59
            isValid=false;
60
            e.printStackTrace();
61
            System.err.println("Couldn't write to file " + "validationFile.txt");
62
        }
63
        return isValid;
64
    }
65
    /*
66
    Project:
67
    Mandatory Fields : id, type, Collected from
68

    
69
     */
70
    public  boolean validateResult(Result result, String claimId){
71
        boolean isValid=true;
72
            if(result==null){
73
                isValid=false;
74
                out.println("Result invalid (null): - claimId:"+claimId);
75
            }else if(result.getOpenaireId()==null||result.getOpenaireId().isEmpty()){
76
                isValid=false;
77
                out.println("Result invalid (Id): - claimId:"+claimId);
78
            }else if(result.getResultType()==null||result.getResultType().isEmpty()){
79
                isValid=false;
80
                out.println("Result invalid (Type): "+result.getOpenaireId()+"- claimId:"+claimId);
81
            }/*
82
            //http://services.openaire.eu:8380/search/search?action=search&sTransformer=results_openaire&query=%28%28%28deletedbyinference+%3D+false%29+AND+%28oaftype+exact+result%29%29+and+%28%28resulttypeid+exact+publication%29+or+%28resulttypeid+exact+dataset%29%29%29+and+%28%28objIdentifier+
83
            //exact+od______1389%3A%3A6ba133c8460d5a67dfb18f34cc5303fb%29+or+%28resultdupid+exact+od______1389%3A%3A6ba133c8460d5a67dfb18f34cc5303fb%29%29&size=10&locale=en_GB
84
            //There are resuts with no title
85
            //so I am
86
            else if(result.getTitle()==null||result.getTitle().isEmpty()){
87
                isValid=false;
88
                out.println("Result invalid (title): "+result.getOpenaireId()+"- claimId:"+claimId);
89
            }*/else if(result.getCollectedFrom()==null||result.getCollectedFrom().isEmpty()){
90
                isValid=false;
91
                out.println("Result invalid (collectedFrom) : "+result.getOpenaireId()+"- claimId:"+claimId);
92
            }
93
        return isValid;
94
    }
95
    /*
96
    Project:
97
    Mandatory Fields : id, name
98

    
99
     */
100
    public  boolean validateProject(Project project, String claimId){
101
        boolean isValid=true;
102
             if(project==null){
103
                isValid=false;
104
                out.println("Project invalid (null): - claimId:"+claimId);
105
            }else if(project.getOpenaireId()==null||project.getOpenaireId().isEmpty()){
106
                isValid=false;
107
                out.println("Project invalid (id): - claimId:"+claimId);
108
            }else if((project.getName()==null||project.getName().isEmpty())&&(project.getAcronym()==null||project.getAcronym().isEmpty())){
109
                isValid=false;
110
                out.println("Project invalid (name/acronym): "+project.getOpenaireId()+"- claimId:"+claimId);
111
            }else if(project.getFunderId()==null||project.getFunderId().isEmpty()){
112
                isValid=false;
113
                out.println("Project invalid (funder id): "+project.getOpenaireId()+"- claimId:"+claimId);
114
            }
115
            else if(project.getFunderName()==null||project.getFunderName().isEmpty()){
116
                isValid=false;
117
                out.println("Project invalid (funder name): "+project.getOpenaireId()+"- claimId:"+claimId);
118
            }
119

    
120
        return isValid;
121
    }
122
    /*
123
    Context:
124
    Mandatory Fields : id, title
125

    
126
     */
127
    public  boolean validateContext(Context context, String claimId){
128
        boolean isValid=true;
129
            if(context==null){
130
                isValid=false;
131
                out.println("Context invalid (null): - claimId:"+claimId);
132
            }else if(context.getOpenaireId()==null||context.getOpenaireId().isEmpty()){
133
                isValid=false;
134
                out.println("Context invalid (id): - claimId:"+claimId);
135
            }/*
136
            //This is commented since There isn't a way to fill this field right now.
137
            else if(context.getTitle()==null||context.getTitle().isEmpty()){
138
                isValid=false;
139
                out.println("Context invalid : "+context.getOpenaireId()+"- claimId:"+claimId);
140
            }*/
141
        return isValid;
142
    }
143
    private boolean validateByType(OpenaireEntity entity,String type , String claimId ){
144
        //TODO add more types (e.g. patends) when they are available
145
        if(type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET)){
146
            return validateResult((Result)entity,claimId);
147
        } else if(type.equals(ClaimUtils.CONTEXT)){
148
            return validateContext((Context)entity,claimId);
149
        }else if(type.equals(ClaimUtils.PROJECT)){
150
            return validateProject((Project)entity,claimId);
151
        }else{
152
            if(entity.getOpenaireId()!=null){
153
                out.println("Entity invalid type ("+type+"):"+entity.getOpenaireId()+" - claimId:"+claimId);
154
            }else {
155
                out.println("Entity invalid type (" + type + "): - claimId:" + claimId);
156
            }
157
        }
158
        return false;
159
    }
160
}
(3-3/10)