Interface Optionable<T extends Optionable<T>>

Type Parameters:
T - Optionable 구현 type
All Known Implementing Classes:
ActivitySetType, AttachmentType, Attribute, AttributeGroupType, AttributeType, DependType, EasyDeskRoleImpl, ItemType, OptionRelationship, Scope, TimeScope

public interface Optionable<T extends Optionable<T>>

이 interface 는 AttributeOption 에 name 을 이용하여 Mapping 되는 OM 을 기술한다. OM 에는 NAME 이 존재하여야 한다. OMManager 는 OptionableManager 를 구현하여야 한다. Optionable 을 구현한 OM 은 OptionRelationship 에 따라 Grouping 을 정의할 수 있다 OptionRelationship 역시 Optionable 이기 때문에 OptionRelationship 도 Grouping 을 할 수 있다 OptionableManager 에는 getByName 을 구현한다. OptionablePeer 에서 getByName 을 구현한다.

Optionable + Artifactizable 은 Attribute Name 과 ItemType Name 이 동일하여야 한다.

Author:
Youngho Cho
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    AttributeOption local Root Option Name ( All 은 Optional Attribute 에 존재할 수 도 있다.)
    static final String
    OptionableManager class 에 static method 로 getByName 이 존재하여야 한다.
    static final org.slf4j.Logger
     
    static final String
    Optionable parent-child name seperator
    static final Pattern
    Schema.xml Column description 에 저장되는 Column 대응 Attribute Name 설정 Pattern , seperate
    static final String
    AttributeOption Global Root Option Name
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    이 optionable 의 경로 이름으로 Attribute 에 AttributeOption 을 추가한다.
    optionable 을 구현하기 위한 Attribute 를 구한다.
    OM 의 optionable 에 대응하는 attributeOption 을 구한다.
    이름을 구한다.
    OptionOption Table 에 정의된 부모를 구한다.
    default String
    DOCUMENT ME!
    default boolean
    Root 의 정의는 자신과 부모가 동일한 경우이다.
    void
    Name 은 동일 Grouping 에서는 unique 하여야 한다.
    void
    setParent(T optionable)
    OptionOption Table 에 정의된 부모를 설정한다.
  • Field Details

    • logger

      static final org.slf4j.Logger logger
    • OPTIONABLE_PATTERN

      static final Pattern OPTIONABLE_PATTERN
      Schema.xml Column description 에 저장되는 Column 대응 Attribute Name 설정 Pattern , seperate
    • GET_BY_NAME

      static final String GET_BY_NAME
      OptionableManager class 에 static method 로 getByName 이 존재하여야 한다. 주의하여야 할 것은 optionable 은 parent-child relationship 에 의하여 '이름/이름' 과 같이 동일한 이름을 지원하지만 일부 optionable 은 이름이 unique 하다. ( '소유자/소유자' 는 존재하지 않는다. )
      See Also:
    • NAME_SEPERATOR

      static final String NAME_SEPERATOR
      Optionable parent-child name seperator
      See Also:
    • ROOT

      static final String ROOT
      AttributeOption Global Root Option Name
      See Also:
    • ALL

      static final String ALL
      AttributeOption local Root Option Name ( All 은 Optional Attribute 에 존재할 수 도 있다.) Reterive 에서는 root 하나를 가지고 오지만, Search 에서는 root 를 제외한 나머지를 적용한다.
      See Also:
  • Method Details

    • isRoot

      default boolean isRoot()
      Root 의 정의는 자신과 부모가 동일한 경우이다.
      Returns:
      DOCUMENT ME!
    • getPathName

      default String getPathName() throws TorqueException
      DOCUMENT ME!
      Returns:
      DOCUMENT ME!
      Throws:
      TorqueException - DOCUMENT ME!
    • appendOption

      default void appendOption() throws Exception
      이 optionable 의 경로 이름으로 Attribute 에 AttributeOption 을 추가한다. 실제 작동은 Workflow 에서 trigger 가 된다.
      Throws:
      Exception - 추가 중 오류가 발생한 경우
    • getAttribute

      Attribute getAttribute() throws TorqueException
      optionable 을 구현하기 위한 Attribute 를 구한다.
      Returns:
      attribute
      Throws:
      TorqueException - 조회 중 오류가 발생한 경우
    • getAttributeOption

      AttributeOption getAttributeOption() throws TorqueException
      OM 의 optionable 에 대응하는 attributeOption 을 구한다. 생성중에는 존재하지 않는다.
      Returns:
      attributeOption
      Throws:
      TorqueException - 조회 중 오류가 발생한 경우
    • getParent

      T getParent()
      OptionOption Table 에 정의된 부모를 구한다. Hierachy 를 지원하지 않는 것은 RootOption 을 return 한다. Optionable 을 서술하고 있는 ItemType 은 parantId 를 속성으로 가지고 있어야 한다. ( Integer ) 조회중 오류가 발생하면 RuntimeException 을 던진다.
      Returns:
      T
    • setParent

      void setParent(T optionable)
      OptionOption Table 에 정의된 부모를 설정한다.
      Parameters:
      optionable - 부모 Optionable
    • setName

      void setName(String name) throws TorqueException
      Name 은 동일 Grouping 에서는 unique 하여야 한다.
      Parameters:
      name - 이름
      Throws:
      TorqueException - 설정 중 오류가 발생한 경우
    • getName

      String getName() throws TorqueException
      이름을 구한다.
      Returns:
      name
      Throws:
      TorqueException - 조회 중 오류가 발생한 경우