Skip to content

Commit 24bc40b

Browse files
committed
lesson 6. Исправление ошибок
1 parent 25ecc3b commit 24bc40b

File tree

11 files changed

+46
-64
lines changed

11 files changed

+46
-64
lines changed

src/com/urise/webapp/model/Resume.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/**
77
* Initial resume class
88
*/
9-
public class Resume implements Comparable<Resume> {
9+
public class Resume {
1010

1111
// Unique identifier
1212
private final String uuid;
@@ -40,9 +40,11 @@ public String toString() {
4040
public boolean equals(Object o) {
4141
if (this == o) return true;
4242
if (o == null || getClass() != o.getClass()) return false;
43+
4344
Resume resume = (Resume) o;
45+
4446
if (!uuid.equals(resume.uuid)) return false;
45-
return uuid.equals(resume.uuid);
47+
return fullName.equals(resume.fullName);
4648
}
4749

4850
@Override
@@ -52,9 +54,9 @@ public int hashCode() {
5254
return result;
5355
}
5456

55-
@Override
57+
/* @Override
5658
public int compareTo(Resume o) {
5759
int cmp = fullName.compareTo(o.fullName);
5860
return cmp != 0 ? cmp : uuid.compareTo(o.getUuid());
59-
}
61+
}*/
6062
}

src/com/urise/webapp/storage/AbstractArrayStorage.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
import java.util.Arrays;
77
import java.util.List;
8-
import java.util.stream.Collectors;
9-
import java.util.stream.Stream;
108

119
public abstract class AbstractArrayStorage extends AbstractStorage {
1210
protected static final int MAX_SIZE = 10_000;
@@ -32,7 +30,9 @@ public void doDelete(Object index) {
3230
}
3331

3432
public List<Resume> getAllSorted() {
35-
return Arrays.stream(storage).limit(resumeCounter).collect(Collectors.toList());
33+
List<Resume> sortedList = doCopyAll();
34+
sortedList.sort(RESUME_COMPARATOR_FULLNAME);
35+
return sortedList;
3636
}
3737

3838
@Override
@@ -45,13 +45,13 @@ protected void doSave(Resume resume, Object index) {
4545
if (resumeCounter >= MAX_SIZE) {
4646
throw new StorageException("Storage overflow", resume.getUuid());
4747
}
48-
insertResume(resume,(Integer) index);
48+
insertResume(resume, (Integer) index);
4949
resumeCounter++;
5050
}
5151

5252
@Override
5353
protected List<Resume> doCopyAll() {
54-
return Arrays.asList(Arrays.copyOfRange(storage,0,resumeCounter));
54+
return Arrays.asList(Arrays.copyOfRange(storage, 0, resumeCounter));
5555
}
5656

5757
public int size() {

src/com/urise/webapp/storage/AbstractStorage.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111

1212
public abstract class AbstractStorage implements Storage {
13-
Comparator<Resume> RESUME_COMAPATOR= Comparator.comparing(Resume::getUuid);
13+
protected final Comparator<Resume> RESUME_COMPARATOR_UUID = Comparator.comparing(Resume::getUuid);
14+
protected final Comparator<Resume> RESUME_COMPARATOR_FULLNAME = Comparator.comparing(Resume::getFullName).thenComparing(Resume::getUuid);
1415

1516
protected abstract void doUpdate(Resume resume, Object searchKey);
1617

@@ -26,14 +27,13 @@ public abstract class AbstractStorage implements Storage {
2627

2728
protected abstract List<Resume> doCopyAll();
2829

29-
public List<Resume> getAllSorted(){
30-
List<Resume> list =doCopyAll();
31-
Collections.sort(list);
32-
return list;
30+
public List<Resume> getAllSorted() {
31+
List<Resume> resumes = doCopyAll();
32+
Collections.sort(resumes, RESUME_COMPARATOR_FULLNAME);
33+
return resumes;
3334
}
3435

3536

36-
3737
public void save(Resume resume) {
3838
doSave(resume, getNotExistedSearchKey(resume.getUuid()));
3939
}
@@ -67,9 +67,4 @@ private Object getNotExistedSearchKey(String uuid) {
6767
return searchKey;
6868
}
6969

70-
/**
71-
* @return array, contains only Resumes in mapStorage (without null)
72-
*/
73-
74-
7570
}

src/com/urise/webapp/storage/ArrayStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ protected Integer getSearchKey(String uuid) {
1919

2020

2121
@Override
22-
protected void insertResume(Resume resume,int index) {
22+
protected void insertResume(Resume resume, int index) {
2323
storage[resumeCounter] = resume;
2424
}
2525

src/com/urise/webapp/storage/ListStorage.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
import java.util.ArrayList;
66
import java.util.List;
7-
import java.util.stream.Collectors;
8-
import java.util.stream.Stream;
97

108
public class ListStorage extends AbstractStorage {
119
private List<Resume> list = new ArrayList<>();

src/com/urise/webapp/storage/MapResumeStorage.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22

33
import com.urise.webapp.model.Resume;
44

5-
import java.lang.reflect.Array;
6-
import java.util.*;
7-
import java.util.stream.Collectors;
8-
import java.util.stream.Stream;
5+
import java.util.ArrayList;
6+
import java.util.HashMap;
7+
import java.util.List;
8+
import java.util.Map;
99

1010
public class MapResumeStorage extends AbstractStorage {
1111
private Map<String, Resume> mapStorage = new HashMap<>();
1212

1313
@Override
1414
protected void doUpdate(Resume resume, Object searchKey) {
15-
16-
mapStorage.put(((Resume)searchKey).getUuid(), resume);
15+
mapStorage.put(((Resume) searchKey).getUuid(), resume);
1716
}
1817

1918
@Override
@@ -28,14 +27,12 @@ protected void doSave(Resume resume, Object searchKey) {
2827

2928
@Override
3029
protected Resume doGet(Object searchKey) {
31-
32-
return (Resume)searchKey;
30+
return (Resume) searchKey;
3331
}
3432

3533
@Override
3634
protected void doDelete(Object searchKey) {
37-
38-
mapStorage.remove(((Resume)searchKey).getUuid());
35+
mapStorage.remove(((Resume) searchKey).getUuid());
3936
}
4037

4138
@Override
@@ -45,7 +42,7 @@ protected Resume getSearchKey(String uuid) {
4542

4643
@Override
4744
protected List<Resume> doCopyAll() {
48-
return new ArrayList(mapStorage.values());
45+
return new ArrayList<>(mapStorage.values());
4946
}
5047

5148
@Override

src/com/urise/webapp/storage/MapStorage.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
import com.urise.webapp.model.Resume;
44

5-
import java.util.*;
5+
import java.util.ArrayList;
6+
import java.util.HashMap;
7+
import java.util.List;
8+
import java.util.Map;
69

710

811
public class MapStorage extends AbstractStorage {

src/com/urise/webapp/storage/SortedArrayStorage.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,13 @@
22

33
import com.urise.webapp.model.Resume;
44

5-
import java.lang.reflect.Array;
6-
import java.sql.Connection;
75
import java.util.Arrays;
8-
import java.util.Comparator;
9-
import java.util.Optional;
10-
import java.util.stream.Stream;
116

127
public class SortedArrayStorage extends AbstractArrayStorage {
138
@Override
149
protected Integer getSearchKey(String uuid) {
15-
Resume resume = new Resume(uuid,"defaultFullName");
16-
// if (resumeCounter==0) return -1;
17-
// String[] uuids = Arrays.stream(storage).limit(resumeCounter).map(r->r.getUuid()).toArray(String[]::new);
18-
// Arrays.stream(storage).filter(r->r.getUuid().equals(uuid)).count();
19-
//return Arrays.binarySearch(storage, 0, resumeCounter, resume);
20-
/* Arrays.stream(storage)
21-
.sorted(Comparator.comparing(Resume::getUuid))
22-
.toArray();*/
23-
//return Arrays.binarySearch(uuids,uuid);
24-
return Arrays.binarySearch(storage,0,resumeCounter,resume,RESUME_COMAPATOR);
10+
Resume resume = new Resume(uuid, "defaultFullName");
11+
return Arrays.binarySearch(storage, 0, resumeCounter, resume, RESUME_COMPARATOR_UUID);
2512
}
2613

2714
@Override

src/com/urise/webapp/storage/Storage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.urise.webapp.model.Resume;
44

5-
import java.util.Comparator;
65
import java.util.List;
76

87
/**

test/com/urise/webapp/storage/AbstractStorageTest.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,18 @@
88

99
import java.util.Arrays;
1010

11-
import static org.junit.Assert.*;
11+
import static org.junit.Assert.assertEquals;
12+
import static org.junit.Assert.assertNotSame;
1213

1314
public abstract class AbstractStorageTest {
1415
private static final String UUID_1 = "UUID_1";
1516
private static final String UUID_2 = "UUID_2";
1617
private static final String UUID_3 = "UUID_3";
1718
private static final String UUID_4 = "UUID_4";
18-
private static final Resume R_1 = new Resume(UUID_1,"FullName_1");
19-
private static final Resume R_2 = new Resume(UUID_2,"FullName_2");
20-
private static final Resume R_3 = new Resume(UUID_3,"FullName_3");
21-
private static final Resume R_4 = new Resume(UUID_4,"FullName_4");
19+
private static final Resume R_1 = new Resume(UUID_1, "FullName_1");
20+
private static final Resume R_2 = new Resume(UUID_2, "FullName_2");
21+
private static final Resume R_3 = new Resume(UUID_3, "FullName_3");
22+
private static final Resume R_4 = new Resume(UUID_4, "FullName_4");
2223

2324
protected Storage storage;
2425

@@ -50,15 +51,15 @@ public void saveExist() {
5051
public void saveNotExist() {
5152
int sizeBefore = storage.size();
5253
storage.save(R_4);
53-
assertEquals(sizeBefore + 1,storage.size());
54+
assertEquals(sizeBefore + 1, storage.size());
5455
assertEquals(R_4, storage.get(UUID_4));
5556
}
5657

5758
@Test
5859
public void getExist() {
59-
assertEquals(R_1,storage.get(UUID_1));
60+
assertEquals(R_1, storage.get(UUID_1));
6061
assertEquals(R_2, storage.get(UUID_2));
61-
assertEquals(R_3,storage.get(UUID_3));
62+
assertEquals(R_3, storage.get(UUID_3));
6263
}
6364

6465
@Test(expected = NotExistStorageException.class)
@@ -70,7 +71,7 @@ public void getNotExist() {
7071
public void deleteExist() {
7172
int sizeBefore = storage.size();
7273
storage.delete(UUID_1);
73-
assertEquals(sizeBefore - 1,storage.size());
74+
assertEquals(sizeBefore - 1, storage.size());
7475
storage.get(UUID_1);
7576

7677
}
@@ -82,18 +83,18 @@ public void deleteNotExist() {
8283

8384
@Test
8485
public void getAllSorted() {
85-
assertEquals(Arrays.asList(R_1, R_2, R_3),storage.getAllSorted());
86+
assertEquals(Arrays.asList(R_1, R_2, R_3), storage.getAllSorted());
8687
}
8788

8889
@Test
8990
public void size() {
90-
assertEquals(3,storage.size());
91+
assertEquals(3, storage.size());
9192
}
9293

9394
@Test
9495
public void updateExist() {
9596
Resume rBefore = storage.get(UUID_1);
96-
Resume rAfter = new Resume(UUID_1,"FullName_1");
97+
Resume rAfter = new Resume(UUID_1, "FullName_1");
9798
storage.update(rAfter);
9899
assertNotSame(storage.get(UUID_1), rBefore);
99100
}

0 commit comments

Comments
 (0)