Programmatically starting rules | HCL Digital Experience
All types of rules can be accessed programmatically within a Java application. For example, a profiler can be used to determine the behavior that an application must exhibit depending on the current user, or an action can return content to your application for further processing before the content is displayed. Rules are mapped to content spots, and because a content spot is an implementation of JavaBeans, it can be programmatically declared and implemented.
To programmatically start a rule, follow these steps:
- Instantiate the bean. If the class name of your content spot was ProfilerSpot, you would
instantiate the bean by using one of the following
options:
com.ibm.websphere.personalization.ContentSpot contentSpot = new com.ibm.websphere.personalization.ContentSpot("ProfilerSpot");
or
ProfilerSpot contentSpot = new ProfilerSpot();
- Call the method
setRequest()
and pass the HttpServletRequest object or an object that implements PznRequestObjectInterface. This action makes the current information that is stored in the request object to be known to the Personalization runtime Engine and the Resource Engine.contentSpot.setRequest(request);
- Trigger the rule and, if applicable, get the content from the
rule. Use one of the following methods, depending on the type of rule:
- Select content actions, bindings, and recommendation actions are
mapped to content spots and return content from a resource.
getRuleContent()
- returns an array of resultsgetRuleContent(int which)
- returns the resource at the index
- Profilers are mapped to empty content spots, which do not declare
a return type.
boolean isProfiledAs(string value)
- returns true or false depending on whether the string passed to the method matches a profile that is given to the userString getProfile(integer value)
- returns the profile in the location that is specified by the integer passedA user can have more than one profile. For example, a user might fit profiles that are named "young," "hip," and "sporty"; when the user is looking for the profile at location 0, "young" is returned.
String[] getProfiles()
- returns an array of profiles.For example, if a user is in profiles "young," "hip," and "sporty," this method returns an array of the profiles.
boolean isProfiledAsAll(String[] profiles)
- returns True or False depending on whether all the profiles match all the profiles in the list of profiles that are passed to the methodboolean isProfiledAsAny(String[] profiles)
- returns True or False depending on whether the profile is in the list of profiles that are passed to the method
- Update actions and email actions are mapped to empty content spots.
trigger()
- runs the rule
- Select content actions, bindings, and recommendation actions are
mapped to content spots and return content from a resource.