Based on your requirements you can add handlers for pre
and post processing around the CRUD operations of an asset type.
Implement changes using the ActionHandler interface.
Implementation overviewThis example creates a sample text creation handler to
update the name of the text module in the pre-process step: Create a TextCreateHandler class implementing the ActionHandler
interface in CorrespondenceManagementSolutionTemplate/Services project.
This interface contains the preProcess() and postProcess() methods
which are called before and after the create method respectively: package com.adobe.icc;
import java.util.Map;
import com.adobe.icc.dbforms.obj.TextModule;
import com.adobe.livecycle.content.repository.action.ActionHandler;
import com.adobe.livecycle.content.repository.action.ActionType;
/**
* TextCreateHandler is the handler associated with the Create operation of the Form. The preProcess() and postProcess() methods of
* this class are invoked just before and after the Create operation.
*/
public class TextCreateHandler implements ActionHandler {
private static final String PREFIX = "PREFIX";
/**
* This method is invoked just prior to the Create operation of TextModule. The first parameter of this API is the form object that
* is being Created.
*/
public void preProcess(String nodeType, ActionType actionType, Object obj, Map<String, Object> arg1)
{
TextModule text = (TextModule) obj;
text.setName(PREFIX + text.getName());
}
/**
* This method is invoked just after to the Create operation of Text. The first parameter is the form object that has been
* Created.
*/
public void postProcess(String nodeType, ActionType actionType, Object arg0, Map<String, Object> arg1) {
// Do nothing
}
}
Configuring the Handler by adding the following entry to
the <bp:blueprint> section of CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\osgi-context.xml
file: <bp:reference interface="com.adobe.livecycle.content.repository.RepositoryService" />
Update the AssetDefinitionDeployer class to add a private
variable repositoryService of class com.adobe.livecycle.content.repository.RepositoryService: @Autowired
private RepositoryService repositoryService;
and add the following code to the afterPropertiesSet() method: List<ActionHandler> handlers = new ArrayList<ActionHandler>();
handlers = new ArrayList<ActionHandler>();
handlers.add(new TextCreateHandler());
repositoryService.addActionHandlers(ActionHandlerService.APP_ROOT_GLOBAL, TextModule.class.getName(), ActionType.CREATE, handlers);
Rebuild and redeploy the Solution template to view the changes.
For information on rebuilding and redeploying, see Building and deploying the Solution Template
|
|
|