4 package com.edf.gde.entities;
6 import com.edf.gde.transferables.AttributeGroupTO;
7 import com.edf.gde.transferables.AttributeTO;
8 import java.io.Serializable;
9 import java.util.ArrayList;
10 import java.util.Collection;
11 import java.util.Objects;
12 import javax.persistence.Basic;
13 import javax.persistence.CascadeType;
14 import javax.persistence.Column;
15 import javax.persistence.Entity;
16 import javax.persistence.FetchType;
17 import javax.persistence.GeneratedValue;
18 import javax.persistence.GenerationType;
19 import javax.persistence.Id;
20 import javax.persistence.NamedQueries;
21 import javax.persistence.NamedQuery;
22 import javax.persistence.OneToMany;
23 import javax.persistence.SequenceGenerator;
24 import javax.persistence.Table;
25 import javax.validation.constraints.NotNull;
26 import javax.xml.bind.annotation.XmlRootElement;
27 import javax.xml.bind.annotation.XmlTransient;
33 @Entity(name = "AttributeGroup")
34 @Table(name = "attribute_group")
37 @NamedQuery(name = "AttributeGroup.findAll", query = "SELECT a FROM AttributeGroup a"),
38 @NamedQuery(name = "AttributeGroup.findById", query = "SELECT a FROM AttributeGroup a WHERE a.id = :id")
40 public class AttributeGroup implements Serializable {
42 private static final long serialVersionUID = 1L;
44 @Basic(optional = false)
46 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE")
47 @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50)
51 @OneToMany (fetch = FetchType.EAGER, orphanRemoval = true, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.REFRESH})
52 private Collection<Attribute> attributeCollection;
54 public AttributeGroup() {
57 public AttributeGroup(long id) {
65 public void setId(long id) {
70 public Collection<Attribute> getAttributeCollection() {
71 return attributeCollection;
74 public void setAttributeCollection(Collection<Attribute> attributeCollection) {
75 this.attributeCollection = attributeCollection;
78 public static AttributeGroup fromAttributeGroupTO(AttributeGroupTO agto) {
79 AttributeGroup group = new AttributeGroup();
80 group.id = agto.getId();
81 Collection<AttributeTO> attributes = agto.getAttributeCollection();
82 if (attributes != null) {
83 group.attributeCollection = new ArrayList<>();
84 for (AttributeTO ato : attributes) {
85 group.attributeCollection.add(Attribute.fromAttributeTO(ato));
91 public AttributeGroupTO toAttributeGroupTO() {
92 AttributeGroupTO agto = new AttributeGroupTO();
95 Collection<AttributeTO> atos = new ArrayList<>();
96 if (attributeCollection != null) {
97 for (Attribute a : this.attributeCollection) {
98 atos.add(a.toAttributeTO());
100 agto.setAttributeCollection(atos);
107 public String toString() {
108 return "com.edf.gde.entities.AttributeGroup[ id=" + id + " ]";
112 public int hashCode() {
114 hash = 79 * hash + (int) (this.id ^ (this.id >>> 32));
115 hash = 79 * hash + Objects.hashCode(this.attributeCollection);
120 public boolean equals(Object obj) {
124 if (getClass() != obj.getClass()) {
127 final AttributeGroup other = (AttributeGroup) obj;
128 if (this.id != other.id) {