public ClickStreamType getLoginClickStream(HtmlPage page) { List<RedirectType> redirectedUrls = tasksDef.getLoginInfo().getRedirectedURL(); for (RedirectType rt : redirectedUrls) { if (rt.getLanding().getFromType() == VarType.XPATH) { if (page.getFirstByXPath(rt.getLanding().getValue()) != null) { return clickStreamMap.get(rt.getClickstream()); } } } return null; }
public void setUp(TasksType tasks, ClassLoader pluginClassLoader) { this.tasksDef = tasks; int size = tasks.getCatTask().size(); assert (size >= 1); for (int i = 0; i < size; i++) { BrowseCatType bc = tasks.getCatTask().get(i); RegExpType ret = bc.getBaseBrowseTask().getIdUrlMapping(); IdUrlMapping ium = new IdUrlMapping(ret); ret = bc.getBaseBrowseTask().getIdUrlMappingFirstPage(); IdUrlMapping iumFirstPage = null; if (ret != null) { iumFirstPage = new IdUrlMapping(ret); } ParsedBrowseCat pbc = new ParsedBrowseCat(ium, iumFirstPage, bc); // do not need name, just use index i parsedBCMap.put(i + "", pbc); logger.info("ium is:" + ium); logger.info("iumFirstPage is:" + iumFirstPage); if (i == 0) { rootBrowseCatTask = bc; } if (i == size - 1) { leafBrowseCatTask = bc; } allBrowseTasks.put(bc.getBaseBrowseTask().getTaskName(), bc.getBaseBrowseTask()); } List<BrowseDetailType> bptList = tasks.getPrdTask(); for (int i = 0; i < bptList.size(); i++) { BrowseDetailType bpt = bptList.get(i); ParsedBrowsePrd pbpt = new ParsedBrowsePrd(bpt); if (i == 0) { defaultBrowsePrdTask = pbpt; } if (bpt.getBaseBrowseTask().getTaskName() != null) browsePrdTaskMap.put(bpt.getBaseBrowseTask().getTaskName(), pbpt); else { if (bptList.size() > 1) logger.error( String.format( "browse prd task name not specified among a list of prd tasks for site: %s", tasks.getStoreId())); } allBrowseTasks.put(bpt.getBaseBrowseTask().getTaskName(), bpt.getBaseBrowseTask()); } skipUrls = new String[tasks.getSkipUrl().size()]; tasks.getSkipUrl().toArray(skipUrls); if (tasks.getLoginInfo() != null) { // setup the click stream map List<ClickStreamType> loginClickStreams = tasks.getLoginInfo().getLoginClickStream(); for (ClickStreamType cst : loginClickStreams) { clickStreamMap.put(cst.getName(), cst); } // setup the login click stream map List<RedirectType> redirectedUrls = tasks.getLoginInfo().getRedirectedURL(); for (RedirectType rt : redirectedUrls) { if (rt.getLanding().getFromType() == VarType.URL) { landingUrlMap.put(rt.getLanding().getValue(), clickStreamMap.get(rt.getClickstream())); } } } }