diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java index fc06e79b..f5c9d08f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java @@ -1,6 +1,7 @@ package com.kamco.cd.kamcoback.common.enums; import com.kamco.cd.kamcoback.common.utils.enums.CodeExpose; +import com.kamco.cd.kamcoback.common.utils.enums.CodeHidden; import com.kamco.cd.kamcoback.common.utils.enums.EnumType; import lombok.AllArgsConstructor; import lombok.Getter; @@ -9,11 +10,13 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum SyncStateType implements EnumType { + @CodeHidden NOTYET("미처리"), NOFILE("파일없음"), NOTPAIR("페어파일누락"), DUPLICATE("파일중복"), TYPEERROR("손상파일"), + @CodeHidden DONE("완료"); private final String desc; diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/CodeHidden.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/CodeHidden.java new file mode 100644 index 00000000..ad320cdd --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/CodeHidden.java @@ -0,0 +1,10 @@ +package com.kamco.cd.kamcoback.common.utils.enums; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface CodeHidden {} diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java index 21d61599..d8d01ed3 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/enums/Enums.java @@ -35,10 +35,19 @@ public class Enums { return Arrays.stream(enums) .map(e -> (EnumType) e) + .filter(e -> !isHidden(enumClass, (Enum) e)) .map(e -> new CodeDto(e.getId(), e.getText())) .toList(); } + private static boolean isHidden(Class> enumClass, Enum e) { + try { + return enumClass.getField(e.name()).isAnnotationPresent(CodeHidden.class); + } catch (NoSuchFieldException ex) { + return false; + } + } + /** 특정 타입(enum)만 조회 /codes/{type} -> type = RoleType 같은 값 */ public static List getCodes(String type) { Class> enumClass = exposedEnumMap.get(type);