Browse Source

refactoring

pull/14253/head
IrynaMatveieva 7 months ago
parent
commit
097bfb0266
  1. 7
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/BaseAggInterval.java
  2. 6
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/CustomInterval.java
  3. 5
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/DayInterval.java
  4. 5
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/HourInterval.java
  5. 5
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/MonthInterval.java
  6. 5
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/QuarterInterval.java
  7. 6
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/WeekInterval.java
  8. 6
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/WeekSunSatInterval.java
  9. 5
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/YearInterval.java

7
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/BaseAggInterval.java

@ -81,7 +81,12 @@ public abstract class BaseAggInterval implements AggInterval {
return actualEnd.toInstant().toEpochMilli();
}
protected abstract ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next);
protected abstract ZonedDateTime alignToIntervalStart(ZonedDateTime reference);
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime base = alignToIntervalStart(reference);
return next ? getNextIntervalStart(base) : base;
}
@Override
public void validate() {

6
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/CustomInterval.java

@ -22,7 +22,6 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.time.Duration;
import java.time.Instant;
import java.time.ZonedDateTime;
@EqualsAndHashCode(callSuper = true)
@ -54,12 +53,11 @@ public class CustomInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
ZonedDateTime localMidnight = reference.toLocalDate().atStartOfDay(reference.getZone());
long secondsFromMidnight = Duration.between(localMidnight, reference).getSeconds();
long alignedSecondsFromMidnight = (secondsFromMidnight / durationSec) * durationSec;
ZonedDateTime aligned = localMidnight.plusSeconds(alignedSecondsFromMidnight);
return next ? aligned.plusSeconds(durationSec) : aligned;
return localMidnight.plusSeconds(alignedSecondsFromMidnight);
}
@Override

5
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/DayInterval.java

@ -35,9 +35,8 @@ public class DayInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime base = reference.truncatedTo(ChronoUnit.DAYS);
return next ? base.plusDays(1) : base;
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
return reference.truncatedTo(ChronoUnit.DAYS);
}
@Override

5
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/HourInterval.java

@ -37,9 +37,8 @@ public class HourInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime base = reference.truncatedTo(ChronoUnit.HOURS);
return next ? base.plusHours(1) : base;
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
return reference.truncatedTo(ChronoUnit.HOURS);
}
@Override

5
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/MonthInterval.java

@ -35,9 +35,8 @@ public class MonthInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime base = reference.withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS);
return next ? base.plusMonths(1) : base;
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
return reference.withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS);
}
@Override

5
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/QuarterInterval.java

@ -36,14 +36,13 @@ public class QuarterInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
int month = reference.getMonthValue();
int quarterStartMonth = ((month - 1) / 3) * 3 + 1; // 1, 4, 7, 10
ZonedDateTime base = ZonedDateTime.of(
return ZonedDateTime.of(
LocalDate.of(reference.getYear(), quarterStartMonth, 1),
LocalTime.MIDNIGHT,
reference.getZone());
return next ? base.plusMonths(3) : base;
}
@Override

6
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/WeekInterval.java

@ -37,10 +37,8 @@ public class WeekInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime startOfWeekDate = reference.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
.truncatedTo(ChronoUnit.DAYS);
return next ? startOfWeekDate.plusWeeks(1) : startOfWeekDate;
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
return reference.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).truncatedTo(ChronoUnit.DAYS);
}
@Override

6
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/WeekSunSatInterval.java

@ -37,10 +37,8 @@ public class WeekSunSatInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime startOfWeekDate = reference.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY))
.truncatedTo(ChronoUnit.DAYS);
return next ? startOfWeekDate.plusWeeks(1) : startOfWeekDate;
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
return reference.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY)).truncatedTo(ChronoUnit.DAYS);
}
@Override

5
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/interval/YearInterval.java

@ -36,12 +36,11 @@ public class YearInterval extends BaseAggInterval {
}
@Override
protected ZonedDateTime getAlignedBoundary(ZonedDateTime reference, boolean next) {
ZonedDateTime base = ZonedDateTime.of(
protected ZonedDateTime alignToIntervalStart(ZonedDateTime reference) {
return ZonedDateTime.of(
LocalDate.of(reference.getYear(), 1, 1),
LocalTime.MIDNIGHT,
reference.getZone());
return next ? base.plusYears(1) : base;
}
@Override

Loading…
Cancel
Save