1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.opencastproject.transcription.persistence;
22
23 import static org.opencastproject.db.Queries.namedQuery;
24
25 import org.apache.commons.lang3.tuple.Pair;
26
27 import java.io.Serializable;
28 import java.util.Optional;
29 import java.util.function.Function;
30
31 import javax.persistence.Column;
32 import javax.persistence.Entity;
33 import javax.persistence.EntityManager;
34 import javax.persistence.GeneratedValue;
35 import javax.persistence.GenerationType;
36 import javax.persistence.Id;
37 import javax.persistence.NamedQueries;
38 import javax.persistence.NamedQuery;
39 import javax.persistence.Table;
40
41
42
43
44 @Entity(name = "TranscriptionProvider")
45 @Table(name = "oc_transcription_service_provider")
46 @NamedQueries({
47 @NamedQuery(
48 name = "TranscriptionProvider.findProviderById",
49 query = "SELECT c FROM TranscriptionProvider c WHERE c.id= :id"
50 ),
51 @NamedQuery(
52 name = "TranscriptionProvider.findIdByProvider",
53 query = "SELECT c FROM TranscriptionProvider c WHERE c.provider= :provider"
54 ),
55 })
56 public class TranscriptionProviderControlDto implements Serializable {
57
58 @Id
59 @GeneratedValue(strategy = GenerationType.AUTO)
60 @Column(name = "id", length = 128)
61 private long id;
62
63 @Column(name = "provider", nullable = false)
64 private String provider;
65
66
67
68
69 public TranscriptionProviderControlDto() {
70 }
71
72
73
74
75
76
77 public TranscriptionProviderControlDto(String provider) {
78 super();
79 this.provider = provider;
80 }
81
82
83
84
85 public TranscriptionProviderControl toTranscriptionProviderControl() {
86 return new TranscriptionProviderControl(id, provider);
87 }
88
89
90
91
92 public static Function<EntityManager, TranscriptionProviderControlDto> storeProviderQuery(String provider) {
93 return em -> {
94 TranscriptionProviderControlDto dto = new TranscriptionProviderControlDto(provider);
95 em.persist(dto);
96 return dto;
97 };
98 }
99
100
101
102
103 public static Function<EntityManager, Optional<TranscriptionProviderControlDto>> findProviderByIdQuery(long id) {
104 return namedQuery.findOpt(
105 "TranscriptionProvider.findProviderById",
106 TranscriptionProviderControlDto.class,
107 Pair.of("id", id)
108 );
109 }
110
111
112
113
114 public static Function<EntityManager, Optional<TranscriptionProviderControlDto>> findIdByProviderQuery(
115 String provider) {
116 return namedQuery.findOpt(
117 "TranscriptionProvider.findIdByProvider",
118 TranscriptionProviderControlDto.class,
119 Pair.of("provider", provider)
120 );
121 }
122 }