서비스 구조를 생성할 때 속성 전파 및 사용자 정의 객체 지속
서비스 구조 생성 및 재생성 중 OOTB 서비스 NodeResolutionService는 생성된 구조에서 복사, 재사용 및 제거할 노드 또는 요소를 확인합니다. 이 서비스를 확장하여 속성 값을 전파하고 생성 또는 재생성된 서비스 구조에 사용자 정의 객체를 작성하는 사용자 정의 로직을 구현할 수 있습니다. xconfmanager 유틸리티를 사용하여 구현 서비스를 등록합니다. 여기에서 설명하는 사용자 정의를 구현하려면 서비스 구조 생성 또는 재생성 후 노드 확인을 완료해야 합니다.
필드
다음 필드는 사용자 정의 코드 실행 중 작성되거나 복사된 사용자 정의 객체의 캐싱을 허용하고 이러한 사용자 정의 객체가 나중에 구성 가능 링크로 유지될 수 있도록 OOTB 서비스 구현에 제공됩니다.
List<WTCollection> customObjects;
메소드
모든 노드의 확인이 완료되면 다음 메소드를 사용합니다.
• postGenerate
/**
* Copy forward any attributes from the originals to their copies
*
* @param originalsToCopies An array of CopyObjectInfo objects containing the originals and copied objects
*/
void postGenerate(CopyObjectInfo[] originalsToCopies);
• persistCustomCollections
OOTB 로직 외부 서비스 구조에 대해 작성된 모든 객체(구성 가능 링크 또는 사용자 정의 로직과 관련된 항목)를 지속시키는 OOTB 메소드입니다. 사용자 정의를 통해 클래스 필드 List<WTCollection>에 컬렉션(지속시켜야 하는 각 객체 유형의 목록에 추가된 새 컬렉션 포함)을 추가해야 합니다.
/**
* Persists any custom objects created during the generate/regenerate process i.e. configurable links
*
* @throws WTException
*/
void persistCustomCollections() throws WTException;
외부 도우미 메소드
객체에 대한 속성을 읽어들이고 객체에 대한 속성을 설정하려면 다음 외부 도우미 메소드를 사용합니다.
• getAttributesFromPersistables
/**
* Retrieves the list of attribute values from passed in persistables
*
* @param objToattrNames Map with key as the persistable object to
* retrieve the values from and values as the list of attributes to
* attempt to retrieve the value for.
* @return A map containing the attribute and the attribute value
* retrieved from each passed in persistable
* @throws WTException
*/
public static WTKeyedMap getAttributesFromPersistables(
WTKeyedMap objToattrNames)
throws WTException
• setAttributesOnPersistables
/**
* Sets the specified attributes with the specified values on the
* collection of specified objects assuming all target objects are
* checked in.
*
* @param updateTargets A map of persistable keys mapped to a map
* containing attribute name and attribute value pairs
* @param persist boolean to specify if the updated persistables
* should be persisted once the update has been processed
* @throws WTException
*/
SisCoreHelper.setAttributesOnPersistables(Map<Persistable, Map<String, Object>> updateTargets)