Refactor Enum Module and Add Description

This commit is contained in:
MangKyu
2021-12-27 21:30:04 +09:00
parent faec6da1f7
commit 2c157bca56
6 changed files with 48 additions and 48 deletions

View File

@@ -2,7 +2,9 @@ package com.mangkyu.employment.interview.enums.common;
public interface EnumMapperType {
String getCode();
String name();
String getTitle();
String getDesc();

View File

@@ -1,21 +1,21 @@
package com.mangkyu.employment.interview.enums.common;
import lombok.Builder;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@Builder
@RequiredArgsConstructor
public class EnumMapperValue implements EnumMapperType {
private final String code;
private final String title;
private final String desc;
@Override
public String getCode() {
public String name() {
return code;
}
@Override
public String getDesc() {
return desc;
}
}

View File

@@ -25,8 +25,16 @@ public class EnumMapperFactory {
private List<EnumMapperValue> createEnumMapperValueList(final Class<? extends EnumMapperType> e) {
return Arrays.stream(e.getEnumConstants())
.map(v -> new EnumMapperValue(v.getCode(), v.getDesc()))
.map(this::convertToEnumMapperValue)
.collect(Collectors.toList());
}
private EnumMapperValue convertToEnumMapperValue(final EnumMapperType enumMapperType) {
return EnumMapperValue.builder()
.code(enumMapperType.name())
.title(enumMapperType.getTitle())
.desc(enumMapperType.getDesc())
.build();
}
}

View File

@@ -8,25 +8,22 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public enum QuizCategory implements EnumMapperType {
JAVA("Java"),
SPRING("Spring Framework"),
SERVER("Server Side Programming"),
NETWORK("Network"),
OPERATING_SYSTEM("Operating System"),
DATABASE("Database"),
PROGRAMMING("Overall Programming"),
DATA_STRUCTURE("Data Structure"),
ALGORITHM("Database"),
PROBLEM_SOLVING("Problem Solving"),
CULTURE("Culture Fit"),
EXPERIENCE("Personal Experience"),
PERSONALITY("About Interviewee"),
;
JAVA("Java", "Java 언어와 관련된 면접 질문을 살펴보세요"),
SPRING("Spring Framework", "Spring 프레임워크와 관련된 면접 질문을 살펴보세요"),
SERVER("Server Side Programming", ""),
NETWORK("Network", "네트워크와 관련된 면접 질문을 살펴보세요"),
OPERATING_SYSTEM("Operating System", "운영체제와 관련된 면접 질문을 살펴보세요"),
DATABASE("Database", "데이터베이스와 관련된 면접 질문을 살펴보세요"),
PROGRAMMING("Overall Programming", "전반적인 프로그래밍과 관련된 면접 질문을 살펴보세요"),
DATA_STRUCTURE("Data Structure", "자료구조와 관련된 면접 질문을 살펴보세요"),
ALGORITHM("Database", "알고리즘과 관련된 면접 질문을 살펴보세요"),
PROBLEM_SOLVING("Problem Solving", "문제 해결과 관련된 면접 질문을 살펴보세요"),
CULTURE("Culture Fit", "문화 적합도와 관련된 면접 질문을 살펴보세요"),
EXPERIENCE("Personal Experience", "개인의 경험와 관련된 면접 질문을 살펴보세요"),
PERSONALITY("About Interviewee", "개인의 성향과 관련된 면접 질문을 살펴보세요"),
;
private final String desc;
private final String title;
private final String desc;
@Override
public String getCode() {
return name();
}
}

View File

@@ -11,23 +11,19 @@ import java.util.Arrays;
@RequiredArgsConstructor
public enum QuizDay implements EnumMapperType {
MONDAY("Monday", DayOfWeek.MONDAY),
TUESDAY("Tuesday", DayOfWeek.TUESDAY),
WEDNESDAY("Wednesday", DayOfWeek.WEDNESDAY),
THURSDAY("Thursday", DayOfWeek.THURSDAY),
FRIDAY("Friday", DayOfWeek.FRIDAY),
SATURDAY("Saturday", DayOfWeek.SATURDAY),
SUNDAY("Sunday", DayOfWeek.SUNDAY),
MONDAY("Monday", "월요일", DayOfWeek.MONDAY),
TUESDAY("Tuesday", "화요일", DayOfWeek.TUESDAY),
WEDNESDAY("Wednesday", "수요일", DayOfWeek.WEDNESDAY),
THURSDAY("Thursday", "목요일", DayOfWeek.THURSDAY),
FRIDAY("Friday", "금요일", DayOfWeek.FRIDAY),
SATURDAY("Saturday", "토요일", DayOfWeek.SATURDAY),
SUNDAY("Sunday", "일요일", DayOfWeek.SUNDAY),
;
private final String title;
private final String desc;
private final DayOfWeek dayOfWeek;
@Override
public String getCode() {
return name();
}
public static QuizDay findQuizDay(final DayOfWeek dayOfWeek) {
return Arrays.stream(QuizDay.values())
.filter(v -> v.dayOfWeek == dayOfWeek)

View File

@@ -8,15 +8,12 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public enum QuizLevel implements EnumMapperType {
NEW("New Developers"),
JUNIOR("Junior Developers"),
SENIOR("Senior Developers"),
;
NEW("New Developers", "신입"),
JUNIOR("Junior Developers", "주니어"),
SENIOR("Senior Developers", "시니어"),
;
private final String desc;
private final String title;
private final String desc;
@Override
public String getCode() {
return name();
}
}