private NodeHistogramSummary getQueueNodeHistogramSummary(ResponseTimeHistogramServiceOption option) {

        Application application = option.getApplication();
        Range range = option.getRange();
        TimeWindow timeWindow = option.getTimeWindow();

        final ServerGroupListFactory serverGroupListFactory = createServerGroupListFactory(option.isUseStatisticsAgentState());
        List<Application> sourceApplications = option.getFromApplications();
        if (sourceApplications.isEmpty()) {
            //scan callee from queue node to find sourceApplication out of serverMap search bound is possible
            return createEmptyNodeHistogramSummary(serverGroupListFactory, application, range);
        }
        LinkDataMapProcessor destinationApplicationFilter = new DestinationApplicationFilter(application);
        LinkSelector linkSelector = linkSelectorFactory.createLinkSelector(LinkSelectorType.UNIDIRECTIONAL, destinationApplicationFilter, LinkDataMapProcessor.NO_OP);
        LinkDataDuplexMap linkDataDuplexMap = linkSelector.select(sourceApplications, timeWindow, 1, 0);

        Node node = new Node(application);
        ServerGroupList serverGroupList = serverGroupListFactory.createQueueNodeInstanceList(node, linkDataDuplexMap);

        NodeList nodeList = NodeListFactory.createNodeList(linkDataDuplexMap);
        LinkList linkList = LinkListFactory.createLinkList(nodeList, linkDataDuplexMap, range);

        final NodeHistogramFactory nodeHistogramFactory = createNodeHistogramFactory();
        NodeHistogram nodeHistogram = nodeHistogramFactory.createQueueNodeHistogram(application, range, linkList);
        return new NodeHistogramSummary(application, serverGroupList, nodeHistogram);
    }
@author HyunGil Jeong
@author jaehong.kim
web/src/main/java/com/navercorp/pinpoint/web/applicationmap/service/ResponseTimeHistogramServiceImpl.java