1 package fr.ifremer.tutti.persistence.model;
2
3 /*
4 * #%L
5 * Tutti :: Persistence
6 * $Id:$
7 * $HeadURL:$
8 * %%
9 * Copyright (C) 2012 - 2015 Ifremer
10 * %%
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation, either version 3 of the
14 * License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program. If not, see
23 * <http://www.gnu.org/licenses/gpl-3.0.html>.
24 * #L%
25 */
26
27 import java.io.Serializable;
28 import java.util.Objects;
29
30 /**
31 * Created on 3/29/15.
32 *
33 * @author Tony Chemit - chemit@codelutin.com
34 * @since 3.14.3
35 */
36 public abstract class DataModelSupport implements Serializable {
37
38 private static final long serialVersionUID = 1L;
39
40 /**
41 * Id representing the data.
42 */
43 private final String id;
44
45 /**
46 * Label of the data.
47 */
48 private final String label;
49
50 /**
51 * Optional id (used for example to link an id in a db to the same data in another db.
52 */
53 private String optionalId;
54
55 public DataModelSupport(String id, String label) {
56 this.id = id;
57 this.label = label;
58 }
59
60 public String getId() {
61 return id;
62 }
63 public Integer getIdAsInt() {
64 Objects.requireNonNull(id);
65 return Integer.valueOf(id);
66 }
67
68 public String getLabel() {
69 return label;
70 }
71
72 public String getOptionalId() {
73 return optionalId;
74 }
75
76 public void setOptionalId(String optionalId) {
77 this.optionalId = optionalId;
78 }
79
80 @Override
81 public boolean equals(Object o) {
82 if (this == o) return true;
83 if (!(o instanceof DataModelSupport)) return false;
84
85 DataModelSupport that = (DataModelSupport) o;
86
87 return id.equals(that.id);
88
89 }
90
91 @Override
92 public int hashCode() {
93 return id.hashCode();
94 }
95 }