-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMemoryMemberRepository.java
More file actions
39 lines (31 loc) · 1.1 KB
/
MemoryMemberRepository.java
File metadata and controls
39 lines (31 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
import java.util.*;
public class MemoryMemberRepository implements MemberRepository {
// Map에 member save
private static Map<Long, Member> store = new HashMap<>();
private static long sequence = 0L; // key 값(id)을 생성
@Override
public Member save(Member member) {
member.setId((++sequence));
store.put(member.getId(), member); // store(member가 save되는 MAP)에 member 저장
return member;
}
@Override
public Optional<Member> findById(Long id) {
return Optional.ofNullable(store.get(id)); // NULL일 가능성이 있으면 Optional로 감싸서 반환
}
@Override
public Optional<Member> findByName(String name) {
return store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
}
@Override
public List<Member> findAll() {
return new ArrayList<>(store.values());
}
public void clearStore(){
store.clear();
}
}