-
Notifications
You must be signed in to change notification settings - Fork 248
/
Copy pathCoverImage.java
78 lines (61 loc) · 2.44 KB
/
CoverImage.java
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package nextstep.courses.domain.coverimage;
import java.time.LocalDateTime;
import nextstep.courses.BaseTime;
public class CoverImage extends BaseTime {
private final long id;
private final String name;
private final CoverImageType coverImageType;
private final ImageFileSize imageFileSize;
private final ImageSize imageSize;
private CoverImage(Long id, String name, CoverImageType coverImageType, ImageFileSize size, ImageSize imageSize, LocalDateTime createdAt, LocalDateTime updatedAt) {
super(createdAt, updatedAt);
this.id = id;
this.name = name;
this.coverImageType = coverImageType;
this.imageFileSize = size;
this.imageSize = imageSize;
}
private CoverImage(String name, CoverImageType coverImageType, ImageFileSize size, ImageSize imageSize) {
this(0L, name, coverImageType, size,imageSize, LocalDateTime.now(), null);
}
public static CoverImage defaultOf(String fileName, long size, long width, long height) {
String name = fileName(fileName);
CoverImageType coverImageType = fileImageType(fileName);
return new CoverImage(name, coverImageType, new ImageFileSize(size),new ImageSize(width, height));
}
public static CoverImage defaultOf(Long id, String name, String coverImageType, long size,
long width, long height, LocalDateTime createdAt, LocalDateTime updatedAt) {
return new CoverImage(id, name, CoverImageType.valueOf(coverImageType), new ImageFileSize(size),new ImageSize(width, height),
createdAt, updatedAt);
}
public static CoverImage defaultOf(Long id, String name, CoverImageType coverImageType,
ImageFileSize imageFileSize, ImageSize imageSize, LocalDateTime createdAt,
LocalDateTime updatedAt) {
return new CoverImage(id, name, coverImageType, imageFileSize,imageSize,
createdAt, updatedAt);
}
private static String fileName(String fileName) {
int point = fileName.indexOf('.');
return fileName.substring(0, point);
}
private static CoverImageType fileImageType(String fileName) {
int point = fileName.indexOf('.');
String imageType = fileName.substring(point + 1);
return CoverImageType.valuesOf(imageType);
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public CoverImageType getCoverImageType() {
return coverImageType;
}
public ImageFileSize getImageFileSize() {
return imageFileSize;
}
public ImageSize getImageSize() {
return imageSize;
}
}