Skip to content

Commit da03245

Browse files
author
Tanechka
committed
Lesson04 Exceptions
1 parent 7f5a5d7 commit da03245

7 files changed

Lines changed: 51 additions & 18 deletions

File tree

src/ru/javawebinar/basejava/MainArray.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,12 @@ public static void main(String[] args) throws IOException {
3636
System.out.println(ARRAY_STORAGE.size());
3737
break;
3838
case "save":
39-
r = new Resume();
40-
r.setUuid(uuid);
39+
r = new Resume(uuid);
4140
ARRAY_STORAGE.save(r);
4241
printAll();
4342
break;
4443
case "update":
45-
r = new Resume();
46-
r.setUuid(uuid);
44+
r = new Resume(uuid);
4745
ARRAY_STORAGE.update(r);
4846
printAll();
4947
break;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package ru.javawebinar.basejava.exception;
2+
3+
public class ExistStorageException extends StorageException {
4+
public ExistStorageException(String uuid) {
5+
super("Resume " + uuid + " already exist", uuid);
6+
}
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package ru.javawebinar.basejava.exception;
2+
3+
public class NotExistStorageException extends StorageException {
4+
public NotExistStorageException(String uuid) {
5+
super("Resume " + uuid + " not exist", uuid);
6+
}
7+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package ru.javawebinar.basejava.exception;
2+
3+
public class StorageException extends RuntimeException {
4+
private final String uuid;
5+
6+
public StorageException(String message, String uuid) {
7+
super(message);
8+
this.uuid = uuid;
9+
}
10+
11+
public String getUuid() {
12+
return uuid;
13+
}
14+
}

src/ru/javawebinar/basejava/model/Resume.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
package ru.javawebinar.basejava.model;
22

3+
import java.util.UUID;
4+
35
/**
46
* ru.javawebinar.basejava.model.Resume class
57
*/
6-
public class Resume implements Comparable<Resume>{
8+
public class Resume implements Comparable<Resume> {
79

810
// Unique identifier
9-
private String uuid;
11+
private final String uuid;
1012

11-
public String getUuid() {
12-
return uuid;
13+
public Resume() {
14+
this(UUID.randomUUID().toString());
1315
}
1416

15-
public void setUuid(String uuid) {
17+
public Resume(String uuid) {
1618
this.uuid = uuid;
1719
}
1820

21+
public String getUuid() {
22+
return uuid;
23+
}
24+
1925
@Override
2026
public boolean equals(Object o) {
2127
if (this == o) return true;
@@ -40,4 +46,4 @@ public String toString() {
4046
public int compareTo(Resume o) {
4147
return uuid.compareTo(o.uuid);
4248
}
43-
}
49+
}

src/ru/javawebinar/basejava/storage/AbstractArrayStorage.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package ru.javawebinar.basejava.storage;
22

3+
import ru.javawebinar.basejava.exception.ExistStorageException;
4+
import ru.javawebinar.basejava.exception.NotExistStorageException;
5+
import ru.javawebinar.basejava.exception.StorageException;
36
import ru.javawebinar.basejava.model.Resume;
47

58
import java.util.Arrays;
@@ -25,7 +28,7 @@ public void clear() {
2528
public void update(Resume r) {
2629
int index = getIndex(r.getUuid());
2730
if (index < 0) {
28-
System.out.println("Resume " + r.getUuid() + " not exist");
31+
throw new NotExistStorageException(r.getUuid());
2932
} else {
3033
storage[index] = r;
3134
}
@@ -41,9 +44,9 @@ public Resume[] getAll() {
4144
public void save(Resume r) {
4245
int index = getIndex(r.getUuid());
4346
if (index >= 0) {
44-
System.out.println("Resume " + r.getUuid() + " already exist");
47+
throw new ExistStorageException(r.getUuid());
4548
} else if (size == STORAGE_LIMIT) {
46-
System.out.println("Storage overflow");
49+
throw new StorageException("Storage overflow", r.getUuid());
4750
} else {
4851
insertElement(r, index);
4952
size++;
@@ -53,7 +56,7 @@ public void save(Resume r) {
5356
public void delete(String uuid) {
5457
int index = getIndex(uuid);
5558
if (index < 0) {
56-
System.out.println("Resume " + uuid + " not exist");
59+
throw new NotExistStorageException(uuid);
5760
} else {
5861
fillDeletedElement(index);
5962
storage[size - 1] = null;
@@ -64,8 +67,7 @@ public void delete(String uuid) {
6467
public Resume get(String uuid) {
6568
int index = getIndex(uuid);
6669
if (index < 0) {
67-
System.out.println("Resume " + uuid + " not exist");
68-
return null;
70+
throw new NotExistStorageException(uuid);
6971
}
7072
return storage[index];
7173
}

src/ru/javawebinar/basejava/storage/SortedArrayStorage.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ protected void insertElement(Resume r, int index) {
2424

2525
@Override
2626
protected int getIndex(String uuid) {
27-
Resume searchKey = new Resume();
28-
searchKey.setUuid(uuid);
27+
Resume searchKey = new Resume(uuid);
2928
return Arrays.binarySearch(storage, 0, size, searchKey);
3029
}
3130
}

0 commit comments

Comments
 (0)