Project

General

Profile

1
package eu.dnetlib.goldoa.domain;
2

    
3
import com.google.gwt.user.client.rpc.IsSerializable;
4

    
5
import java.util.Arrays;
6
import java.util.HashSet;
7
import java.util.List;
8
import java.util.Set;
9

    
10
/**
11
 * Created by antleb on 3/9/15.
12
 */
13
public class Eligibility implements IsSerializable {
14

    
15
	public enum Status implements IsSerializable {
16
		OK, IFFY, NONO;
17
	}
18

    
19
	public static final Eligibility OK = new Eligibility(Status.OK);
20

    
21
	private String[] messages;
22
	private Status status;
23

    
24
	public Eligibility() {
25
		messages = new String[0];
26
		status = Status.OK;
27
	}
28

    
29
	public Eligibility(Status status, String... messages) {
30
		this.messages = messages;
31
		this.status = status;
32
	}
33

    
34
	public Eligibility merge(Eligibility e) {
35
		this.status = merge(status, e.status);
36
		this.messages = merge(messages, e.messages);
37

    
38
		return this;
39
	}
40

    
41
	private Status merge(Status... statuses) {
42
		List<Status> list = Arrays.asList(statuses);
43

    
44
		if (list.contains(Status.NONO))
45
			return Status.NONO;
46
		else if (list.contains(Status.IFFY))
47
			return Status.IFFY;
48
		else
49
			return Status.OK;
50
	}
51

    
52
	private String[] merge(String[] messages1, String[] messages2) {
53
		Set<String> s = new HashSet<String>();
54

    
55
		s.addAll(Arrays.asList(messages1));
56
		s.addAll(Arrays.asList(messages2));
57

    
58
		return s.toArray(new String[s.size()]);
59
	}
60

    
61
	public String[] getMessages() {
62
		return messages;
63
	}
64

    
65
	public void setMessages(String[] messages) {
66
		this.messages = messages;
67
	}
68

    
69
	public Status getStatus() {
70
		return status;
71
	}
72

    
73
	public void setStatus(Status status) {
74
		this.status = status;
75
	}
76
}
(36-36/117)