public class ResolveClientLocationCmdImpl extends com.ibm.commerce.foundation.celadon.common.oagis.CeladonPipelineCmdImpl implements ResolveClientLocationCmd
Modifier and Type | Field and Description |
---|---|
protected boolean | point_of_interest_matching_for_all_source_types
Directive which determines if point of interest matching logic is used for all incoming client location nouns, regardless of their source type setting -- the default value is false which means that point of interest matching logic is used only for selective source types whose values appear in the array of strings returned by the getPointOfInterestMatchingSelectiveSourceTypes method.
|
protected int | point_of_interest_matching_rule
The point of interest matching rule which determines which points of interest relate to client locations as they are reported to the service -- the rule should have one of the three values: ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_NEAREST_ONLY, ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_ALL_WITHIN_GEOMETRIC_AREA (the default) or ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_BY_HIGHEST_PRECEDENCE_WITHIN_GEOMETRIC_AREA.
|
protected java.util.List | point_of_interest_matching_selective_source_types
List of selective source types for which point of interest matching logic is used on incoming client location nouns -- by default this list has the single member "GPS".
|
Constructor and Description |
---|
ResolveClientLocationCmdImpl()
Constructor
|
Modifier and Type | Method and Description |
---|---|
boolean | clientLocationsMatch(ClientLocationType incoming_client_location, ClientLocationType candidate_client_location)
Determines if two individual ClientLocation nouns match each other for potential inclusion in the working set for the point of interest matching process.
|
protected java.util.List<ClientLocationType> | computeWorkingSetOfMatchingClientLocations(ClientLocationType noun)
Determines a working set of existing ClientLocation nouns that match a given client location noun -- this working set of client location nouns are then operated on during the point of interest matching process.
|
protected java.util.List<PointOfInterestType> | computeWorkingSetOfMatchingPointsOfInterest(ClientLocationType location)
Business logic which determines which PointOfInterest nouns should be considered to match a given ClientLocation noun (as given by its latitude, longitude and accuracy).
|
void | execute()
Searches the data service for ClientLocation objects that match the given ClientLocation object on these fields: ClientID, StoreID, RegionID, ZoneID
|
protected java.util.List<PointOfInterestType> | findAllPointsOfInterest(ClientLocationType location)
Convenience method to find all known PointOfInterest nouns which correspond to the store ID of a given ClientLocation noun -- this may be used by subclasses which wish to customize the business logic which matches client locations to points of interest.
|
protected PointOfInterestType | findNearestPointOfInterestToClientLocation(ClientLocationType location)
Find the PointOfInterest noun for the nearest known point of interest relative to a given ClientLocation noun's physical location (latitude/longitude).
|
protected java.util.List<PointOfInterestType> | findPointsOfInterestIntersectingClientLocation(ClientLocationType location)
Find a list of PointOfInterest nouns for all known points of interest whose geometric area (given by their latitude, longitude and radius) intersects the geometric area of a given ClientLocation noun (as given by its latitude, longitude and accuracy).
|
boolean | getPointOfInterestMatchingForAllSourceTypes()
Retrieves the business logic directive which determines if point of interest matching logic is used for all incoming client location nouns, regardless of their source type setting -- if the value is false, then point of interest matching logic is used only for selective source types whose values appear in the array of strings returned by the getPointOfInterestMatchingSelectiveSourceTypes method.
|
int | getPointOfInterestMatchingRule()
Retrieves the point of interest matching rule which determines which points of interest relate to client locations as they are reported to the service -- the rule will typicallys have one of the three values: ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_NEAREST_ONLY, ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_ALL_WITHIN_GEOMETRIC_AREA (the default) or ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_BY_HIGHEST_PRECEDENCE_WITHIN_GEOMETRIC_AREA.
|
java.util.List | getPointOfInterestMatchingSelectiveSourceTypes()
Retrieves the list of selective source types for which point of interest matching logic is used on incoming client location nouns.
|
protected boolean | processIncomingNoun(ClientLocationType client_location)
Core business logic decision as to whether to process a given noun by this pipeline command (via a return value of true) or to pass the noun through the pipeline without alteration (via a return value of false).
|
protected java.util.List<ClientLocationType> | retrieveMatchingClientLocations(java.lang.String store_id, java.lang.String client_id)
Retrieves a list of matching client location nouns which match a given store ID and client ID, to be considered as candidate members of a working set for the point of interest matching process.
|
void | setPointOfInterestMatchingForAllSourceTypes(boolean point_of_interest_matching_for_all_source_types)
Sets the business logic directive which determines if point of interest matching logic is used for all incoming client location nouns, regardless of their source type setting -- if the value is false, then point of interest matching logic is used only for selective source types whose values appear in the array of strings returned by the getPointOfInterestMatchingSelectiveSourceTypes method.
|
void | setPointOfInterestMatchingRule(int point_of_interest_matching_rule)
Sets the point of interest matching rule which determines which points of interest relate to client locations as they are reported to the service -- the rule should have one of the three values: ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_NEAREST_ONLY, ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_ALL_WITHIN_GEOMETRIC_AREA (the default) or ResolveClientLocationCmd.POINT_OF_INTEREST_MATCH_BY_HIGHEST_PRECEDENCE_WITHIN_GEOMETRIC_AREA.
|
void | setPointOfInterestMatchingSelectiveSourceTypes(java.util.List point_of_interest_matching_selective_source_types)
Sets the list of selective source types for which point of interest matching logic is used on incoming client location nouns.
|
protected void | updateExistingClientLocationNounFromIncomingClientLocationNoun(ClientLocationType existing_location, ClientLocationType incoming_location)
Updates an existing client location noun with values found in an incoming client location noun -- this method is typically called when the incoming client location noun has updated location information which should be passed to the existing client location noun before it is updated on the data service.
|
protected void | updateIncomingClientLocationNounFromExistingPointOfInterestNoun(ClientLocationType location, PointOfInterestType poi)
Updates a client location noun with values found in related fields of a point of interest noun -- this method is typically called when a client is found to be newly matched to a point of interest by the noun resolution process.
|
protected boolean point_of_interest_matching_for_all_source_types
protected java.util.List point_of_interest_matching_selective_source_types
protected int point_of_interest_matching_rule
protected boolean processIncomingNoun(ClientLocationType client_location)
public void setPointOfInterestMatchingForAllSourceTypes(boolean point_of_interest_matching_for_all_source_types)
public boolean getPointOfInterestMatchingForAllSourceTypes()
public java.util.List getPointOfInterestMatchingSelectiveSourceTypes()
public void setPointOfInterestMatchingSelectiveSourceTypes(java.util.List point_of_interest_matching_selective_source_types)
public void setPointOfInterestMatchingRule(int point_of_interest_matching_rule)
public int getPointOfInterestMatchingRule()
public void execute() throws com.ibm.websphere.command.CommandException
protected java.util.List<ClientLocationType> computeWorkingSetOfMatchingClientLocations(ClientLocationType noun)
protected java.util.List<ClientLocationType> retrieveMatchingClientLocations(java.lang.String store_id, java.lang.String client_id)
public boolean clientLocationsMatch(ClientLocationType incoming_client_location, ClientLocationType candidate_client_location)
protected java.util.List<PointOfInterestType> computeWorkingSetOfMatchingPointsOfInterest(ClientLocationType location) throws com.ibm.commerce.location.facade.server.exception.LocationApplicationException
protected java.util.List<PointOfInterestType> findPointsOfInterestIntersectingClientLocation(ClientLocationType location) throws com.ibm.commerce.location.facade.server.exception.LocationApplicationException
protected java.util.List<PointOfInterestType> findAllPointsOfInterest(ClientLocationType location)
protected PointOfInterestType findNearestPointOfInterestToClientLocation(ClientLocationType location)
protected void updateExistingClientLocationNounFromIncomingClientLocationNoun(ClientLocationType existing_location, ClientLocationType incoming_location)
protected void updateIncomingClientLocationNounFromExistingPointOfInterestNoun(ClientLocationType location, PointOfInterestType poi)