Package com.easydesk.web.support
Class OptionableLabSupport
java.lang.Object
com.easydesk.web.support.OptionableLabSupport
Optionable OM(EasyDeskPermissionImpl, EasyDeskRoleImpl, ...) 관리 화면의 "실험실" 목록을 만드는 공용 로직.
Optionable 은 자기 Attribute(Permission -> AttributeEnum.Permission, Role -> AttributeEnum.Role) 의
AttributeOption 과 이름(pathName)으로 mapping 된다. 그런데 AttributeOption 은 Attribute 관리 화면이나
import data 로 따로 등록될 수 있어서, AttributeOption 에는 있지만 OM table(EASYDESK_PERMISSION,
EASYDESK_ROLE) 에는 아직 row 가 없는 것이 생긴다. 그런 Option 만 골라서 "실험실" 로 보여준다.
PermissionAdminController 와 RoleAdminController 가 같은 규칙을 쓰므로 여기로 뽑았다
(ItemViewSupport 와 같은 이유 - 컨트롤러마다 복붙해두면 한쪽만 고치고 다른쪽을 빼먹기 쉽다).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final record"실험실" 목록 한 줄 (AttributeOption 의 id 와 pathName). -
Method Summary
Modifier and TypeMethodDescriptiongetUnregisteredOptions(Attribute attribute, Collection<String> registeredNames) attribute 의 AttributeOption 중에서 registeredNames(OM table 에 등록된 이름) 에 없는 것을 구한다.
-
Method Details
-
getUnregisteredOptions
public static List<OptionableLabSupport.ExperimentalOptionRow> getUnregisteredOptions(Attribute attribute, Collection<String> registeredNames) throws TorqueException attribute 의 AttributeOption 중에서 registeredNames(OM table 에 등록된 이름) 에 없는 것을 구한다. 비교는 core 의 Optionable#getAttributeOption() 과 같은 기준인 pathName 으로 한다 (부모가 Root 인 Option 은 pathName 이 이름과 같다). 삭제(removed) 처리된 Option 은 Attribute 상세 화면의 Option 목록과 마찬가지로 제외한다.- Parameters:
attribute- Optionable 에 대응하는 OptionAttributeregisteredNames- OM table 에 이미 등록되어 있는 이름들- Returns:
- AttributeOption 순서(PreferredOrder) 대로 정렬된 실험실 목록
- Throws:
TorqueException- 조회 중 오류가 발생한 경우
-