atg.markers.userprofiling
Class ProfileMarkerManager
java.lang.Object
   atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
       atg.nucleus.GenericService
atg.nucleus.GenericService
           atg.markers.RepositoryMarkerManager
atg.markers.RepositoryMarkerManager
               atg.markers.userprofiling.ProfileMarkerManager
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_VERSIONClass 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:
- getMarkerEventProfileIdin class- RepositoryMarkerManager
 
- 
- Parameters:
- pMarkedItemId- the marked item's repository id
- pMarkedItemType- the marked item's repository type
- pMarkerItem- 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:
- receiveSwapEventin 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