Project

General

Profile

1
package eu.dnetlib.datasource.publisher.model.db;
2

    
3
import java.io.Serializable;
4
import java.util.Objects;
5
import javax.persistence.Embeddable;
6
import javax.persistence.JoinColumn;
7
import javax.persistence.ManyToOne;
8

    
9
import com.fasterxml.jackson.annotation.JsonIgnore;
10
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
11
import com.google.common.collect.ComparisonChain;
12

    
13
/**
14
 * Created by claudio on 13/04/2017.
15
 */
16
@Embeddable
17
@JsonIgnoreProperties(ignoreUnknown = true)
18
public class ApiParamKey implements Serializable {
19

    
20
	@JsonIgnore
21
	@ManyToOne
22
	@JoinColumn(name = "api")
23
	private Api api = null;
24

    
25
	private String param;
26

    
27
	public ApiParamKey() {}
28

    
29
	public String getParam() {
30
		return param;
31
	}
32

    
33
	public ApiParamKey setParam(final String param) {
34
		this.param = param;
35
		return this;
36
	}
37

    
38
	public Api getApi() {
39
		return api;
40
	}
41

    
42
	public void setApi(final Api api) {
43
		this.api = api;
44
	}
45

    
46
	@Override
47
	public int hashCode() {
48
		return Objects.hash(getParam(), getApi().getId());
49
	}
50

    
51
	@Override
52
	public boolean equals(final Object o) {
53
		if (this == o) {
54
			return true;
55
		}
56
		if (o == null || getClass() != o.getClass()) {
57
			return false;
58
		}
59
		ApiParamKey apk = (ApiParamKey) o;
60
		return ComparisonChain.start()
61
				.compare(getParam(), apk.getParam())
62
				.compare(getApi(), apk.getApi())
63
				.result() == 0;
64
	}
65

    
66

    
67
}
(3-3/12)