Project

General

Profile

1 45968 panagiotis
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
}