Package com.easydesk.om
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
FieldsModifier and TypeFieldDescriptionstatic final StringAttributeOption local Root Option Name ( All 은 Optional Attribute 에 존재할 수 도 있다.)static final StringOptionableManager class 에 static method 로 getByName 이 존재하여야 한다.static final org.slf4j.Loggerstatic final StringOptionable parent-child name seperatorstatic final PatternSchema.xml Column description 에 저장되는 Column 대응 Attribute Name 설정 Pattern , seperatestatic final StringAttributeOption Global Root Option Name -
Method Summary
Modifier and TypeMethodDescriptiondefault void이 optionable 의 경로 이름으로 Attribute 에 AttributeOption 을 추가한다.optionable 을 구현하기 위한 Attribute 를 구한다.OM 의 optionable 에 대응하는 attributeOption 을 구한다.getName()이름을 구한다.OptionOption Table 에 정의된 부모를 구한다.default StringDOCUMENT ME!default booleanisRoot()Root 의 정의는 자신과 부모가 동일한 경우이다.voidName 은 동일 Grouping 에서는 unique 하여야 한다.voidOptionOption Table 에 정의된 부모를 설정한다.
-
Field Details
-
logger
static final org.slf4j.Logger logger -
OPTIONABLE_PATTERN
Schema.xml Column description 에 저장되는 Column 대응 Attribute Name 설정 Pattern , seperate -
GET_BY_NAME
OptionableManager class 에 static method 로 getByName 이 존재하여야 한다. 주의하여야 할 것은 optionable 은 parent-child relationship 에 의하여 '이름/이름' 과 같이 동일한 이름을 지원하지만 일부 optionable 은 이름이 unique 하다. ( '소유자/소유자' 는 존재하지 않는다. )- See Also:
-
NAME_SEPERATOR
Optionable parent-child name seperator- See Also:
-
ROOT
AttributeOption Global Root Option Name- See Also:
-
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
DOCUMENT ME!- Returns:
- DOCUMENT ME!
- Throws:
TorqueException- DOCUMENT ME!
-
appendOption
이 optionable 의 경로 이름으로 Attribute 에 AttributeOption 을 추가한다. 실제 작동은 Workflow 에서 trigger 가 된다.- Throws:
Exception- 추가 중 오류가 발생한 경우
-
getAttribute
optionable 을 구현하기 위한 Attribute 를 구한다.- Returns:
- attribute
- Throws:
TorqueException- 조회 중 오류가 발생한 경우
-
getAttributeOption
OM 의 optionable 에 대응하는 attributeOption 을 구한다. 생성중에는 존재하지 않는다.- Returns:
- attributeOption
- Throws:
TorqueException- 조회 중 오류가 발생한 경우
-
getParent
T getParent()OptionOption Table 에 정의된 부모를 구한다. Hierachy 를 지원하지 않는 것은 RootOption 을 return 한다. Optionable 을 서술하고 있는 ItemType 은 parantId 를 속성으로 가지고 있어야 한다. ( Integer ) 조회중 오류가 발생하면 RuntimeException 을 던진다.- Returns:
- T
-
setParent
OptionOption Table 에 정의된 부모를 설정한다.- Parameters:
optionable- 부모 Optionable
-
setName
Name 은 동일 Grouping 에서는 unique 하여야 한다.- Parameters:
name- 이름- Throws:
TorqueException- 설정 중 오류가 발생한 경우
-
getName
이름을 구한다.- Returns:
- name
- Throws:
TorqueException- 조회 중 오류가 발생한 경우
-