blob: e00245135619863ff4ea662d21bfad07471a8780 [file] [log] [blame]
margaretha5b708792023-05-12 16:55:29 +02001package de.ids_mannheim.korap.core.entity;
margaretha543f2002017-07-14 00:27:15 +02002
margarethae353dfa2017-07-18 19:23:29 +02003import java.util.Set;
4
margaretha6e796842023-08-17 15:10:45 +02005import jakarta.persistence.Column;
6import jakarta.persistence.Entity;
7import jakarta.persistence.FetchType;
8import jakarta.persistence.Id;
9import jakarta.persistence.JoinColumn;
10import jakarta.persistence.JoinTable;
11import jakarta.persistence.ManyToMany;
12import jakarta.persistence.Table;
margaretha543f2002017-07-14 00:27:15 +020013import lombok.Getter;
14import lombok.Setter;
15
margaretha2c50c732018-10-17 18:48:52 +020016/**
17 * Describes resources having free licenses. Primarily for
margaretha398f4722019-01-09 19:07:20 +010018 * accommodating clients in providing data without login such as
19 * KorapSRU.
margaretha2c50c732018-10-17 18:48:52 +020020 *
margaretha08bdabe2017-10-17 14:38:49 +020021 * @author margaretha
22 *
23 */
margaretha543f2002017-07-14 00:27:15 +020024@Getter
25@Setter
26@Entity
27@Table(name = "resource")
28public class Resource {
29
30 @Id
31 private String id;
32
margarethae353dfa2017-07-18 19:23:29 +020033 @Column(name = "de_title")
34 private String germanTitle;
margaretha543f2002017-07-14 00:27:15 +020035
36 @Column(name = "en_title")
37 private String englishTitle;
margaretha08bdabe2017-10-17 14:38:49 +020038
margarethae353dfa2017-07-18 19:23:29 +020039 @Column(name = "en_description")
40 private String englishDescription;
margaretha543f2002017-07-14 00:27:15 +020041
margaretha2c50c732018-10-17 18:48:52 +020042 @ManyToMany(fetch = FetchType.EAGER)
margaretha35e1ca22023-11-16 22:00:01 +010043 @JoinTable(name = "resource_layer", joinColumns = @JoinColumn(name = "resource_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "layer_id", referencedColumnName = "id"))
margaretha51e5e3f2018-10-17 15:10:03 +020044 private Set<AnnotationLayer> layers;
margaretha08bdabe2017-10-17 14:38:49 +020045
margaretha2c50c732018-10-17 18:48:52 +020046 public Resource () {}
47
48 public Resource (String id, String germanTitle, String englishTitle,
49 String englishDescription, Set<AnnotationLayer> layers) {
50 this.id = id;
51 this.germanTitle = germanTitle;
52 this.englishTitle = englishTitle;
53 this.englishDescription = englishDescription;
54 this.layers = layers;
55 }
margaretha08bdabe2017-10-17 14:38:49 +020056
margaretha543f2002017-07-14 00:27:15 +020057 @Override
58 public String toString () {
margarethae353dfa2017-07-18 19:23:29 +020059 return "id=" + id + ", germanTitle=" + germanTitle + ", englishTitle="
margaretha08bdabe2017-10-17 14:38:49 +020060 + englishTitle + ", description=" + englishDescription
61 + ", layers= " + layers;
margaretha543f2002017-07-14 00:27:15 +020062 }
63
64}