Class OptionableLabSupport

java.lang.Object
com.easydesk.web.support.OptionableLabSupport

public final class OptionableLabSupport extends Object
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 와 같은 이유 - 컨트롤러마다 복붙해두면 한쪽만 고치고 다른쪽을 빼먹기 쉽다).
  • 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 에 대응하는 OptionAttribute
      registeredNames - OM table 에 이미 등록되어 있는 이름들
      Returns:
      AttributeOption 순서(PreferredOrder) 대로 정렬된 실험실 목록
      Throws:
      TorqueException - 조회 중 오류가 발생한 경우