atg.markers.userprofiling
Class ProfileMarkerManager
java.lang.Object
atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
atg.nucleus.GenericService
atg.markers.RepositoryMarkerManager
atg.markers.userprofiling.ProfileMarkerManager
- All Implemented Interfaces:
- MarkerConstants, MarkerValidatorContainer, atg.naming.AbsoluteNameable, NameContextBindingListener, NameContextElement, atg.naming.NameContextParentable, NameResolver, AdminableService, atg.nucleus.Configured, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, atg.userprofiling.ProfileSwapEventListener, java.util.EventListener
public class ProfileMarkerManager
- extends RepositoryMarkerManager
- implements atg.userprofiling.ProfileSwapEventListener
This class is the RepositoryMarkerManager extension for managing profile markers.
This extension is a registered listener of ProfileSwapEvents issued by the ProfileForm class so that
it may copy markers from an anonymous user to a persistent user when a login occurs.
However, there is one caveat. The conditional application logic that
originally added a marker to the transient user is not reevaluated
when copying the marker from the transient to the persistent user.
Therefore, a marker that was conditionally added to the transient user will
be added to the persistent user without performing the same conditional checks.
As a result, the application may subsequently see unexpected results in the
persistent user's marker collection.
For example, if a marker was added in a scenario that conditionally
added a marker based on the value of other markers, it will be
copied to the persistent user without first checking the value of other markers.
Configurable properties:
- profilePropertyNames
- Specifies the property names on the profile that contain marker which should be copied upon
login.
- See Also:
RepositoryMarkerManager
,
ProfileSwapEventListener
Field Summary |
static java.lang.String |
CLASS_VERSION
Class version string |
Fields inherited from class atg.markers.RepositoryMarkerManager |
mAddMessageJMSType, mAlwaysValidate, mDefaultDuplicationMode, mDefaultMarkedItemType, mDefaultMarkerDuplicateComparator, mDefaultMarkerItemType, mDefaultMarkerPropertyName, mDefaultMarkerSortPropertyName, mGenerateEvents, mMarkerDuplicateComparators, mMarkerMessageSource, mMarkerValidators, mMaxItemsPerTransaction, mRemoveMessageJMSType, mReplaceMessageJMSType, mRepository, mRequiredExtendedProperties, mTransactionManager |
Fields inherited from interface atg.markers.MarkerConstants |
ALLOW_DUPLICATES, ANY_VALUE, DEFAULT_MARKER_ID_PROPERTY_NAME, DEFAULT_MARKER_ITEM_TYPE, DEFAULT_MARKER_PROPERTY_NAME, DEFAULT_MARKER_SORT_PROPERTY_NAME, MARKER_CREATIONDATE_PROPERTY_NAME, MARKER_DATA_PROPERTY_NAME, MARKER_DUPLICATIONMODE_PROPERTY_NAME, MARKER_KEY_PROPERTY_NAME, MARKER_OWNER_PROPERTY_NAME, MARKER_RESOURCE_NAME, MARKER_VALUE_PROPERTY_NAME, NO_DUPLICATES, PARAM_DATA, PARAM_DUPMODE, PARAM_EXTENDED_PROPERTIES, PARAM_ITEM, PARAM_ITEM_ID, PARAM_KEY, PARAM_MARKED_ITEM_TYPE, PARAM_MARKER_ITEM_TYPE, PARAM_MARKER_MANAGER, PARAM_MARKER_PROPERTY_NAME, PARAM_VALUE, REPLACE_DUPLICATES, sResourceBundle |
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging |
DEFAULT_LOG_TRACE_STATUS |
Method Summary |
void |
addSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
Adds a ProfileSwapEventListener to the list of listeners that
care about ProfileSwapEvents |
protected java.lang.String |
getMarkerEventProfileId(java.lang.String pMarkedItemId,
java.lang.String pMarkedItemType,
RepositoryItem pMarkerItem)
This method extension will return the markedItemId if the markedItemType is the
same as the defaultMarkedItemType. |
java.lang.String[] |
getProfilePropertyNames()
Returns the profile property names that contain markers |
void |
receiveSwapEvent(atg.userprofiling.ProfileSwapEvent pEvent)
Accepts and processes a ProfileSwapEvent
generated by the ProfileForm. |
void |
removeSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
Removes a ProfileSwapEventListener to the list of listeners that
care about ProfileSwapEvents |
protected void |
sendProfileSwapEvent(atg.userprofiling.ProfileSwapEvent pEvent)
Sends a ProfileSwapEvent to the swap event listeners
This method is called by receiveSwapEvent to pass along
the swap event to other listeners so, if need be, those
listeners can perform additional processing after the
ProfileMarkerManager. |
void |
setProfilePropertyNames(java.lang.String[] pProfilePropertyNames)
|
Methods inherited from class atg.markers.RepositoryMarkerManager |
addMarkerItemToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItem, addMarkerToItemsCollection, addMarkerValidator, areMarkerPropertiesEqual, compareDefaultPropertyValues, compareExtendedPropertyValues, createAddedEventMessage, createAddedEventMessage, createAddedMarkerData, createMarkerItem, createRemovedEventMessage, createRemovedEventMessage, createRemovedMarkerData, createReplacedEventMessage, createReplacedEventMessage, createReplacedMarkerData, createSortedArrayOfMarkers, deleteMarkers, doStartService, findComparator, findDuplicates, findLastMarkerOnItem, findMarkerValidator, findMarkerValidator, findMatchingMarkers, findMatchingMarkers, findMatchingMarkers, findValidKeys, findValidValuesForKey, generateAddMessage, generateMarkerData, generateMarkerExtendedPropertyQuery, generateMarkerQualifyingAndedQuery, generateRemoveMessage, generateReplaceMessage, getAddMessageJMSType, getAllMarkersFromItem, getAllMarkersFromItem, getAllMarkersFromItem, getAllMarkersFromItem, getComparatorKey, getDefaultDuplicationMode, getDefaultMarkedItemType, getDefaultMarkerDuplicateComparator, getDefaultMarkerItemType, getDefaultMarkerPropertyName, getDefaultMarkerSortPropertyName, getDefaultPropertyQuery, getDuplicationMode, getItemsWithMarker, getItemsWithMarker, getMarkedItemType, getMarkerCollectionFromItem, getMarkerDuplicateComparators, getMarkerItemType, getMarkerMessageSource, getMarkerPropertyName, getMarkerSortPropertyName, getMarkerValidators, getMaxItemsPerTransaction, getRemoveMessageJMSType, getReplaceMessageJMSType, getRepository, getRequiredExtendedProperties, getTransactionManager, getValidatedKeysAndValues, hasDuplicates, hasMarker, hasMarker, hasMarker, hasMarker, identifyMissingExtendedProperties, isAlwaysValidate, isDuplicateMarker, isGenerateEvents, isValidKey, isValidValueForKey, matchLastMarker, matchLastMarker, matchLastMarker, matchLastMarker, matchLastMarkerWithKey, matchLastMarkerWithKey, matchLastMarkerWithKey, matchLastMarkerWithKey, removeAllMarkersFromItem, removeAllMarkersFromItem, removeAllMarkersFromItem, removeAllMarkersFromItem, removeMarkersFromItem, removeMarkersFromItem, removeMarkersFromItem, removeMarkersFromItem, removeMarkersFromItemsCollection, removeMarkerValidator, setAddMessageJMSType, setAlwaysValidate, setBaseMarkerData, setBaseMarkerEventProperties, setBaseMarkerEventProperties, setDefaultDuplicationMode, setDefaultMarkedItemType, setDefaultMarkerDuplicateComparator, setDefaultMarkerItemType, setDefaultMarkerProperties, setDefaultMarkerPropertyName, setDefaultMarkerSortPropertyName, setExtendedMarkerData, setExtendedMarkerProperties, setGenerateEvents, setMarkerDuplicateComparators, setMarkerMessageSource, setMarkerValidators, setMaxItemsPerTransaction, setRemoveMessageJMSType, setReplaceMessageJMSType, setRepository, setRequiredExtendedProperties, setTransactionManager, validateMarker |
Methods inherited from class atg.nucleus.GenericService |
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService |
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl |
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CLASS_VERSION
public static java.lang.String CLASS_VERSION
- Class version string
ProfileMarkerManager
public ProfileMarkerManager()
setProfilePropertyNames
public void setProfilePropertyNames(java.lang.String[] pProfilePropertyNames)
getProfilePropertyNames
public java.lang.String[] getProfilePropertyNames()
- Returns the profile property names that contain markers
addSwapEventListener
public void addSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
- Adds a ProfileSwapEventListener to the list of listeners that
care about ProfileSwapEvents
- Parameters:
pListener
- the ProfileSwapEventListener to add
removeSwapEventListener
public void removeSwapEventListener(atg.userprofiling.ProfileSwapEventListener pListener)
- Removes a ProfileSwapEventListener to the list of listeners that
care about ProfileSwapEvents
- Parameters:
pListener
- the ProfileSwapEventListener to remove
getMarkerEventProfileId
protected java.lang.String getMarkerEventProfileId(java.lang.String pMarkedItemId,
java.lang.String pMarkedItemType,
RepositoryItem pMarkerItem)
- This method extension will return the markedItemId if the markedItemType is the
same as the defaultMarkedItemType. The result being that the profile id associated
with the event will be the same as the profile that is being marked, and not necessaily
the same as the profile that is logged in. For instance, this allows you to advance
scenarios that are waiting for an "addmarker" event for a profile that is not logged in.
- Overrides:
getMarkerEventProfileId
in class RepositoryMarkerManager
- Parameters:
pMarkedItemId
- the marked item's repository idpMarkedItemType
- the marked item's repository typepMarkerItem
- the marker repository item
receiveSwapEvent
public void receiveSwapEvent(atg.userprofiling.ProfileSwapEvent pEvent)
- Accepts and processes a ProfileSwapEvent
generated by the ProfileForm.
When an anonymous user logs in, this method
copies the markers from the anonymous
profile to the persistent profile.
The original duplication mode for each
marker is applied when adding the marker to the
persistent profile.
- Specified by:
receiveSwapEvent
in interface atg.userprofiling.ProfileSwapEventListener
- Parameters:
pEvent
- the event to process
sendProfileSwapEvent
protected void sendProfileSwapEvent(atg.userprofiling.ProfileSwapEvent pEvent)
- Sends a ProfileSwapEvent to the swap event listeners
This method is called by receiveSwapEvent to pass along
the swap event to other listeners so, if need be, those
listeners can perform additional processing after the
ProfileMarkerManager.
- Parameters:
pEvent
- the ProfileSwapEvent