11package com .balinski .api_project .database .dao ;
22
3- import com .balinski .api_project .database .model .DatabaseModel ;
3+ import com .balinski .api_project .database .DaoManager ;
4+ import com .balinski .api_project .database .model .Film ;
45
56import java .math .BigDecimal ;
67import java .time .LocalDateTime ;
78import java .time .format .DateTimeFormatter ;
89import java .util .List ;
910import java .util .Map ;
1011
11- public class FilmDao extends Dao {
12+ public class FilmDao extends Dao < Film > {
1213 static final DateTimeFormatter toDate = DateTimeFormatter .ofPattern ("yyyy-MM-dd" );
1314
1415 public FilmDao (DaoManager manager , boolean transaction ) {
15- super (manager , ModelType .FILM , transaction );
16+ super (manager , DaoType .FILM , transaction );
1617 }
1718
18- public List <? super DatabaseModel > getByTitle (String title ) {
19+ public List <Film > getByTitle (String title ) {
1920 List <Map <String , Object >> result = manager .queryGetData (
2021 String .format ("SELECT * FROM FILM F WHERE lower(F.TITLE) = '%s';" , title .toLowerCase ())
2122 );
2223
2324 return toListOfObjects (result );
2425 }
2526
26- public List <? super DatabaseModel > getReleasedBetween (LocalDateTime start , LocalDateTime end ) {
27+ public List <Film > getReleasedBetween (LocalDateTime start , LocalDateTime end ) {
2728 List <Map <String , Object >> result = manager .queryGetData (
2829 String .format ("SELECT * FROM FILM F WHERE F.RELEASE_YEAR BETWEEN TIMESTAMP '%s' AND TIMESTAMP '%s';" ,
2930 start .format (toDate ), end .format (toDate ))
@@ -32,23 +33,23 @@ public List<? super DatabaseModel> getReleasedBetween(LocalDateTime start, Local
3233 return toListOfObjects (result );
3334 }
3435
35- public List <? super DatabaseModel > getReleasedBefore (LocalDateTime date ) {
36+ public List <Film > getReleasedBefore (LocalDateTime date ) {
3637 List <Map <String , Object >> result = manager .queryGetData (
3738 String .format ("SELECT * FROM FILM F WHERE F.RELEASE_YEAR < TIMESTAMP '%s';" , date .format (toDate ))
3839 );
3940
4041 return toListOfObjects (result );
4142 }
4243
43- public List <? super DatabaseModel > getReleasedAfter (LocalDateTime date ) {
44+ public List <Film > getReleasedAfter (LocalDateTime date ) {
4445 List <Map <String , Object >> result = manager .queryGetData (
4546 String .format ("SELECT * FROM FILM F WHERE F.RELEASE_YEAR > TIMESTAMP '%s';" , date .format (toDate ))
4647 );
4748
4849 return toListOfObjects (result );
4950 }
5051
51- public List <? super DatabaseModel > getAvailableInLanguage (String language ) {
52+ public List <Film > getAvailableInLanguage (String language ) {
5253 List <Map <String , Object >> result = manager .queryGetData (
5354 String .format ("SELECT F.* FROM (FILM F JOIN LANGUAGE L ON F.LANGUAGE_ID = L.LANGUAGE_ID" +
5455 ") WHERE lower(NAME) = '%s';" , language .toLowerCase ())
@@ -57,7 +58,7 @@ public List<? super DatabaseModel> getAvailableInLanguage(String language) {
5758 return toListOfObjects (result );
5859 }
5960
60- public List <? super DatabaseModel > getWithRentalRateBetween (BigDecimal min , BigDecimal max ) {
61+ public List <Film > getWithRentalRateBetween (BigDecimal min , BigDecimal max ) {
6162 List <Map <String , Object >> result = manager .queryGetData (
6263 String .format ("SELECT * FROM FILM F WHERE F.RENTAL_RATE BETWEEN %s AND %s;" ,
6364 min .toPlainString (), max .toPlainString ())
@@ -66,63 +67,63 @@ public List<? super DatabaseModel> getWithRentalRateBetween(BigDecimal min, BigD
6667 return toListOfObjects (result );
6768 }
6869
69- public List <? super DatabaseModel > getWithLowerRentalRateThan (BigDecimal rate ) {
70+ public List <Film > getWithLowerRentalRateThan (BigDecimal rate ) {
7071 List <Map <String , Object >> result = manager .queryGetData (
7172 String .format ("SELECT * FROM FILM F WHERE F.RENTAL_RATE < %s;" , rate .toPlainString ())
7273 );
7374
7475 return toListOfObjects (result );
7576 }
7677
77- public List <? super DatabaseModel > getWithGreaterRentalRateThan (BigDecimal rate ) {
78+ public List <Film > getWithGreaterRentalRateThan (BigDecimal rate ) {
7879 List <Map <String , Object >> result = manager .queryGetData (
7980 String .format ("SELECT * FROM FILM F WHERE F.RENTAL_RATE > %s;" , rate .toPlainString ())
8081 );
8182
8283 return toListOfObjects (result );
8384 }
8485
85- public List <? super DatabaseModel > getWithRentalDurationBetween (int min , int max ) {
86+ public List <Film > getWithRentalDurationBetween (int min , int max ) {
8687 List <Map <String , Object >> result = manager .queryGetData (
8788 String .format ("SELECT * FROM FILM F WHERE F.RENTAL_DURATION BETWEEN %d AND %d;" , min , max )
8889 );
8990
9091 return toListOfObjects (result );
9192 }
9293
93- public List <? super DatabaseModel > getWithShorterRentalDurationThan (int duration ) {
94+ public List <Film > getWithShorterRentalDurationThan (int duration ) {
9495 List <Map <String , Object >> result = manager .queryGetData (
9596 String .format ("SELECT * FROM FILM F WHERE F.RENTAL_DURATION < %d;" , duration )
9697 );
9798
9899 return toListOfObjects (result );
99100 }
100101
101- public List <? super DatabaseModel > getWithGreaterRentalDurationThan (int duration ) {
102+ public List <Film > getWithGreaterRentalDurationThan (int duration ) {
102103 List <Map <String , Object >> result = manager .queryGetData (
103104 String .format ("SELECT * FROM FILM F WHERE F.RENTAL_DURATION > %d;" , duration )
104105 );
105106
106107 return toListOfObjects (result );
107108 }
108109
109- public List <? super DatabaseModel > getWithLengthBetween (int min , int max ) {
110+ public List <Film > getWithLengthBetween (int min , int max ) {
110111 List <Map <String , Object >> result = manager .queryGetData (
111112 String .format ("SELECT * FROM FILM F WHERE F.LENGTH BETWEEN %d AND %d;" , min , max )
112113 );
113114
114115 return toListOfObjects (result );
115116 }
116117
117- public List <? super DatabaseModel > getShorterThan (int minutes ) {
118+ public List <Film > getShorterThan (int minutes ) {
118119 List <Map <String , Object >> result = manager .queryGetData (
119120 String .format ("SELECT * FROM FILM F WHERE F.LENGTH < %d;" , minutes )
120121 );
121122
122123 return toListOfObjects (result );
123124 }
124125
125- public List <? super DatabaseModel > getLongerThan (int minutes ) {
126+ public List <Film > getLongerThan (int minutes ) {
126127 List <Map <String , Object >> result = manager .queryGetData (
127128 String .format ("SELECT * FROM FILM F WHERE F.LENGTH > %d;" , minutes )
128129 );
0 commit comments