- Library Service : 로우 데이터(Singleton 활용)
// Singleton: 기본데이터 저장
private static LibServiceImpl libServiceImpl = new LibServiceImpl();
private LibServiceImpl() {
}
public static LibServiceImpl getInstance() { // Singleton 생성
return libServiceImpl;
}
// 싱글턴 변수
private List<Book> books = new ArrayList<Book>(); // Book data
private List<LibBook> lBooks = new ArrayList<LibBook>(); // LibBook data
private List<User> users = new ArrayList<User>(); // User data
private List<Rent> rents = new ArrayList<Rent>(); // Rent data
// 싱글턴 겟터, 셋터
public List<Book> getBooks() {
return books;
}
public List<LibBook> getlBooks() {
return lBooks;
}
public List<User> getUsers() {
return users;
}
public List<Rent> getRents() {
return rents;
}
{ // 초기화 블럭
// Book 데이터
books.add(new Book(101, "카이사르의 마지막 숨", "샘 킨", "해나무", "9791164051298"));
books.get(0).setAmount(3);
books.add(new Book(102, "주목받는 카메라연기 레슨", "안지은", "한권의책", "9791185237053")); // 제목 '카' 중복
books.get(1).setAmount(2);
books.add(new Book(103, "숙명", "히가시노 게이고", "창해", "9788979197662"));
books.get(2).setAmount(1);
books.add(new Book(104, "조선의 위기 대응 노트", "김준태", "민음사", "9788937444654"));
books.get(3).setAmount(1);
books.add(new Book(105, "형제", "김준태", "지식을 만드는 지식", "9788964062920")); // 저자 중복
books.get(4).setAmount(1);
books.add(new Book(106, "Java performance", "Scott Oaks", "Reilly", "9781492056119")); // 출판사 중복
books.get(5).setAmount(3);
books.add(new Book(107, "definitive guide", "Eric A. Meyer", "Reilly", "9780596527334"));
books.get(6).setAmount(1);
books.add(new Book(108, "Treatment of disorders", "Eric A. Youngstrom", "Guilford Press", "9781462547715")); // 해외저자 중복
books.get(7).setAmount(2);
books.add(new Book(109, "다크 데이터", "데이비드 핸드", "더퀘스트", "9791165217099"));
books.get(8).setAmount(3);
// LibBook 데이터(소장도서)
lBooks.add(new LibBook(10001, 101)); // 카이사르의 마지막 숨
lBooks.add(new LibBook(10002, 101)); // 카이사르의 마지막 숨
lBooks.add(new LibBook(10003, 101)); // 카이사르의 마지막 숨
lBooks.add(new LibBook(10004, 102)); // 주목받는 카메라연기 레슨
lBooks.add(new LibBook(10005, 102)); // 주목받는 카메라연기 레슨
lBooks.add(new LibBook(10006, 103)); // 숙명
lBooks.add(new LibBook(10007, 104)); // 조선의 위기 대응 노트
lBooks.add(new LibBook(10008, 105)); // 형제
lBooks.add(new LibBook(10009, 106)); // Java performance
lBooks.add(new LibBook(10010, 106)); // Java performance
lBooks.add(new LibBook(10011, 106)); // Java performance
lBooks.add(new LibBook(10012, 107)); // definitive guide
lBooks.add(new LibBook(10013, 108)); // Treatment of disorders
lBooks.add(new LibBook(10014, 108)); // Treatment of disorders
lBooks.add(new LibBook(10015, 109)); // 다크 데이터
lBooks.add(new LibBook(10016, 109)); // 다크 데이터
lBooks.add(new LibBook(10017, 109)); // 다크 데이터
// User 데이터
users.add(new User("혁오", "981111", "010-1111-1111", 1001, "1234", true)); // 관리자
users.add(new User("너드커넥션", "981112", "010-1111-1112", 1002, "1234", false));
users.add(new User("카더가든", "981113", "010-1111-1113", 1003, "1234", false));
users.add(new User("오존", "981114", "010-1111-1114", 1004, "1234", false));
users.add(new User("설", "981115", "010-1111-1115", 1005, "1234", false));
users.add(new User("다섯", "981116", "010-1111-1116", 1006, "1234", true));
// Rent 데이터(도서 대여·반납)
rents.add(new Rent(1001, users.get(0).getId(), lBooks.get(0).getId())); // 연체
rents.get(0).setDateRent(1643718644381l);
lBooks.get(0).setRent(true);
rents.add(new Rent(1002, users.get(0).getId(), lBooks.get(1).getId()));
rents.get(1).setDateRent(1642938620000l);
rents.add(new Rent(1003, users.get(0).getId(), lBooks.get(2).getId()));
rents.add(new Rent(1004, users.get(1).getId(), lBooks.get(3).getId()));
rents.add(new Rent(1005, users.get(2).getId(), lBooks.get(4).getId()));
rents.add(new Rent(1006, users.get(3).getId(), lBooks.get(5).getId()));
}