1 package net.sumaris.core.model.referential.taxon;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import net.sumaris.core.model.referential.IItemReferentialEntity;
26 import org.hibernate.HibernateException;
27 import org.hibernate.engine.spi.SharedSessionContractImplementor;
28 import org.hibernate.id.IdentityGenerator;
29
30 import java.io.Serializable;
31
32
33 public class UseExistingIdOrGenerate extends IdentityGenerator {
34
35 @Override
36 public Serializable generate(SharedSessionContractImplementor session, Object obj) throws HibernateException {
37 if (obj == null) throw new HibernateException(new NullPointerException()) ;
38
39 if ((((IItemReferentialEntity) obj).getId()) == null) {
40 Serializable id = super.generate(session, obj) ;
41 return id;
42 } else {
43 return ((IItemReferentialEntity) obj).getId();
44
45 }
46 }
47 }