Projekt

Obecné

Profil

Stáhnout (1.82 KB) Statistiky
| Větev: | Revize:
1
package vldc.aswi.domain;
2

    
3
import lombok.Data;
4
import lombok.EqualsAndHashCode;
5
import lombok.NoArgsConstructor;
6
import vldc.aswi.domain.parameter.Parameter;
7

    
8
import javax.persistence.*;
9
import java.util.List;
10

    
11
/**
12
 * Domain entity representing Assembly in application.
13
 */
14
@Entity(name = "Sestava")
15
@Data
16
@EqualsAndHashCode(callSuper = true)
17
@NoArgsConstructor
18
public class Assembly extends EntityParent {
19

    
20
    /** Name of Assembly. */
21
    @Column(name = "nazev")
22
    private String name;
23

    
24
    /** SQL query which gets data from database. */
25
    @Column(name = "sql_dotaz")
26
    private String SQLQuery;
27

    
28
    /** Specific order of assembly in list of assemblies. */
29
    @Column(name = "poradi")
30
    private int order;
31

    
32
    @Column(name = "verejny")
33
    private int isPublic;
34

    
35
    /** List of configurations, which using this assembly. */
36
    @OneToMany(mappedBy = "assembly")
37
    private List<Configuration> configurations;
38

    
39
    /** List of parameters, which using this assembly. */
40
    @OneToMany(mappedBy = "assembly")
41
    private List<Parameter> parameters;
42

    
43
    /**
44
     * Creating new table with M:N relationship between Assembly and Role.
45
     * Every assembly can be used by 0 - every role.
46
     */
47
    @ManyToMany
48
    @JoinTable(
49
            name = "Sestava_ma_Role",
50
            joinColumns = @JoinColumn(name = "sestava_id"),
51
            inverseJoinColumns = @JoinColumn(name = "role_id")
52
    )
53
    private List<Role> roles;
54

    
55
    /**
56
     * Constructor.
57
     * @param name - Name of Assembly.
58
     * @param SQLQuery - SQL query which gets data from database.
59
     * @param order - Specific order of assembly in list of assemblies.
60
     */
61
    public Assembly(String name, String SQLQuery, int order, int isPublic) {
62
        this.setName(name);
63
        this.setSQLQuery(SQLQuery);
64
        this.setOrder(order);
65
        this.setIsPublic(isPublic);
66
    }
67
}
(1-1/8)