com.enonic.cms.core.search.result.DateHistogramFacetResultSetXmlCreator.java Source code

Java tutorial

Introduction

Here is the source code for com.enonic.cms.core.search.result.DateHistogramFacetResultSetXmlCreator.java

Source

/*
 * Copyright 2000-2013 Enonic AS
 * http://www.enonic.com/license
 */

package com.enonic.cms.core.search.result;

import java.util.Set;

import org.jdom.Element;
import org.joda.time.LocalDateTime;

import com.enonic.cms.core.CmsDateAndTimeFormats;

public class DateHistogramFacetResultSetXmlCreator extends AbstractFacetResultXmlCreator {

    public Element create(DateHistogramFacetResultSet dateHistogramFacetResultSet) {
        final Element rangeFacetRootElement = createFacetRootElement("date-histogram", dateHistogramFacetResultSet);

        final Set<DateHistogramFacetResultEntry> resultEntries = dateHistogramFacetResultSet.getResultEntries();

        for (DateHistogramFacetResultEntry result : resultEntries) {
            Element resultEl = new Element("interval");
            addAttributeIfNotNull(resultEl, "sum", result.getTotal());
            addAttributeIfNotNull(resultEl, "total-count", result.getTotalCount());
            addAttributeIfNotNull(resultEl, "hits", result.getCount());
            addAttributeIfNotNull(resultEl, "min", result.getMin());
            addAttributeIfNotNull(resultEl, "mean", result.getMean());
            addAttributeIfNotNull(resultEl, "max", result.getMax());

            resultEl.addContent(getTimeAsFormattedString(result));

            rangeFacetRootElement.addContent(resultEl);
        }

        return rangeFacetRootElement;
    }

    private String getTimeAsFormattedString(final DateHistogramFacetResultEntry result) {
        LocalDateTime localDateTime = new LocalDateTime(result.getTime());

        return CmsDateAndTimeFormats.printAs_XML_TIMESTAMP(localDateTime.toDate());
    }

}