@GetMapping(value = "/getLinkTimeHistogramData")
    public LinkHistogramSummaryView getLinkTimeHistogramData(
            @RequestParam(value = "fromApplicationName", required = false) @NullOrNotBlank String fromApplicationName,
            @RequestParam(value = "fromServiceTypeCode", required = false) Short fromServiceTypeCode,
            @RequestParam(value = "toApplicationName", required = false) @NullOrNotBlank String toApplicationName,
            @RequestParam(value = "toServiceTypeCode", required = false) Short toServiceTypeCode,
            @Valid @ModelAttribute
            RangeForm rangeForm,
            @RequestParam(value = "useLoadHistogramFormat", defaultValue = "false", required = false)
            boolean useLoadHistogramFormat
    ) {
        final Range range = toRange(rangeForm);
        this.rangeValidator.validate(range);
        TimeWindow timeWindow = new TimeWindow(range);

        final Application fromApplication = this.createApplication(fromApplicationName, fromServiceTypeCode);
        final Application toApplication = this.createApplication(toApplicationName, toServiceTypeCode);
        final LinkHistogramSummary linkHistogramSummary =
                responseTimeHistogramService.selectLinkHistogramData(fromApplication, toApplication, timeWindow);

        TimeHistogramFormat format = TimeHistogramFormat.format(useLoadHistogramFormat);
        return new LinkHistogramSummaryView(linkHistogramSummary, format);
    }
@author emeroad
@author netspider
@author jaehong.kim
@author HyunGil Jeong
web/src/main/java/com/navercorp/pinpoint/web/applicationmap/controller/MapHistogramController.java