ip program test
This commit is contained in:
16
src/main/java/ru/ip/example/repository/FilmRepository.java
Normal file
16
src/main/java/ru/ip/example/repository/FilmRepository.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package ru.ip.example.repository;
|
||||
|
||||
import ru.ip.example.domain.FilmEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface FilmRepository {
|
||||
|
||||
FilmEntity save(FilmEntity entity);
|
||||
|
||||
List<FilmEntity> findAll();
|
||||
|
||||
FilmEntity findById(Integer id);
|
||||
|
||||
void deleteById(Integer id);
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package ru.ip.example.repository;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.ip.example.domain.FilmEntity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class FilmRepositoryDao implements FilmRepository {
|
||||
|
||||
private static Integer idSequence = 0;
|
||||
|
||||
private static List<FilmEntity> films = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public FilmEntity save(FilmEntity entity) {
|
||||
if (entity.getId() == null) {
|
||||
entity.setId(idSequence++);
|
||||
} else if (films.contains(entity)) {
|
||||
films.remove(entity);
|
||||
}
|
||||
films.add(entity);
|
||||
System.out.println("save/upd film: " + entity);
|
||||
return entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FilmEntity> findAll() {
|
||||
return films;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilmEntity findById(Integer id) {
|
||||
for (FilmEntity film : films) {
|
||||
if (film.getId().equals(id)) {
|
||||
return film;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//equals реализован только с id, поэтому для remove в entity проставляем только id
|
||||
@Override
|
||||
public void deleteById(Integer id) {
|
||||
FilmEntity filmEntity = new FilmEntity();
|
||||
filmEntity.setId(id);
|
||||
films.remove(filmEntity);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user