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

    
14
public class Eligibility implements IsSerializable {
15

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

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

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

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

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

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

    
39
		return this;
40
	}
41

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

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

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

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

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

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

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

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

    
74
	public void setStatus(Status status) {
75
		this.status = status;
76
	}
77
}
(16-16/52)