生成服务结构时的属性传播和自定义对象持续性
在生成和重新生成服务结构期间,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 逻辑外的服务结构创建的对象持续存在,这里的 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)