diff --git a/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQueryParser.java b/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQueryParser.java index e6e3eaf71c8..fb0426549a8 100644 --- a/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQueryParser.java +++ b/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQueryParser.java @@ -129,12 +129,8 @@ public CubeJSQuery parseQueryToCubeQuery(final AnalyticsQuery query) { } private Collection parseTimeDimensions(final String timeDimensions) { - final TimeDimensionParser.TimeDimension parsedTimeDimension = TimeDimensionParser.parseTimeDimension(timeDimensions); - return Stream.of( - Objects.isNull(parsedTimeDimension.getDateRange())? - new CubeJSQuery.TimeDimension(parsedTimeDimension.getDimension(),parsedTimeDimension.getGranularity()): - new CubeJSQuery.TimeDimension(parsedTimeDimension.getDimension(),parsedTimeDimension.getGranularity(), parsedTimeDimension.getDateRange()) - ).collect(Collectors.toList()); + final CubeJSQuery.TimeDimension parsedTimeDimension = TimeDimensionParser.parseTimeDimension(timeDimensions); + return Stream.of(parsedTimeDimension).collect(Collectors.toList()); } private Collection parseOrders(final String orders) { diff --git a/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java b/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java index 9f6d6ffbf1a..03d1dd2e4bf 100644 --- a/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java +++ b/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java @@ -1,5 +1,7 @@ package com.dotcms.analytics.query; +import com.dotcms.cube.CubeJSQuery; + import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -23,47 +25,7 @@ private TimeDimensionParser() { private static final String FIELD_REGEX = "^(\\w+\\.\\w+)\\s+(\\w+)(?:\\s+(.+))?$"; private static final Pattern PATTERN = Pattern.compile(FIELD_REGEX); - public static class TimeDimension { - - private final String dimension; - private final String granularity; - private final String dateRange; - - public TimeDimension(final String dimension, final String granularity) { - this(dimension, granularity, null); - } - - public TimeDimension(final String dimension, - final String granularity, - final String dateRange) { - this.dimension = dimension; - this.granularity = granularity; - this.dateRange = dateRange; - } - - public String getDimension() { - return dimension; - } - - public String getGranularity() { - return granularity; - } - - public String getDateRange() { - return dateRange; - } - - @Override - public String toString() { - return "TimeDimension{" + - "dimension='" + dimension + '\'' + - ", granularity='" + granularity + '\'' + - ", dateRange='" + dateRange + '\'' + - '}'; - } - } - - public static TimeDimension parseTimeDimension(final String expression) throws IllegalArgumentException { + public static CubeJSQuery.TimeDimension parseTimeDimension(final String expression) throws IllegalArgumentException { // cache and checked final Matcher matcher = PATTERN.matcher(expression.trim()); @@ -73,7 +35,7 @@ public static TimeDimension parseTimeDimension(final String expression) throws I final String granularity = matcher.group(2); // Ex: day final String dateRange = matcher.group(3); // Ex: date range - return new TimeDimension(dimension, granularity, dateRange); + return new CubeJSQuery.TimeDimension(dimension, granularity, dateRange); } else { throw new IllegalArgumentException("The expression is not valid. This should be the format 'Term Field'."); } diff --git a/dotCMS/src/test/java/com/dotcms/analytics/query/TimeDimensionParserTest.java b/dotCMS/src/test/java/com/dotcms/analytics/query/TimeDimensionParserTest.java index f3c65911f9b..db6e33f2ca9 100644 --- a/dotCMS/src/test/java/com/dotcms/analytics/query/TimeDimensionParserTest.java +++ b/dotCMS/src/test/java/com/dotcms/analytics/query/TimeDimensionParserTest.java @@ -1,5 +1,6 @@ package com.dotcms.analytics.query; +import com.dotcms.cube.CubeJSQuery; import org.junit.Assert; import org.junit.Test; @@ -16,7 +17,7 @@ public class TimeDimensionParserTest { */ @Test public void test_parseTimeDimension_dimension_plus_granularity_should_be_OK() throws Exception { - final TimeDimensionParser.TimeDimension result = + final CubeJSQuery.TimeDimension result = TimeDimensionParser.parseTimeDimension("Events.day day"); Assert.assertNotNull(result); @@ -32,7 +33,7 @@ public void test_parseTimeDimension_dimension_plus_granularity_should_be_OK() th */ @Test public void test_parseTimeDimension_dimension_plus_granularity_and_dateRange_should_be_OK() throws Exception { - final TimeDimensionParser.TimeDimension result = + final CubeJSQuery.TimeDimension result = TimeDimensionParser.parseTimeDimension("Events.day day This Week"); Assert.assertNotNull(result); @@ -48,7 +49,7 @@ public void test_parseTimeDimension_dimension_plus_granularity_and_dateRange_sho */ @Test public void test_parseTimeDimension_dimension_plus_granularity_and_dateRange_yesterday_should_be_OK() throws Exception { - final TimeDimensionParser.TimeDimension result = + final CubeJSQuery.TimeDimension result = TimeDimensionParser.parseTimeDimension("Events.day day yesterday"); Assert.assertNotNull(result); @@ -63,7 +64,7 @@ public void test_parseTimeDimension_dimension_plus_granularity_and_dateRange_yes */ @Test public void test_parseTimeDimension_dimension_plus_granularity_and_dateRange_last_7_days_should_be_OK() throws Exception { - final TimeDimensionParser.TimeDimension result = + final CubeJSQuery.TimeDimension result = TimeDimensionParser.parseTimeDimension("Events.day day Last 7 days"); Assert.assertNotNull(result);