![JAR search and dependency download from the Maven repository](/logo.png)
com.nextbreakpoint.flink.dummies.TemperatureAccumulator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.nextbreakpoint.flink.dummies Show documentation
Show all versions of com.nextbreakpoint.flink.dummies Show documentation
Collection of dummy jobs for Apache Flink
The newest version!
/*
* This file is part of Flink Dummies
* https://github.com/nextbreakpoint/flink-dummies
*/
package com.nextbreakpoint.flink.dummies;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.math.RoundingMode;
@Data
@Builder(toBuilder = true, setterPrefix = "with")
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class TemperatureAccumulator {
private BigDecimal maximumTemperature;
private BigDecimal temperature;
private int count;
public TemperatureAccumulator add(BigDecimal element) {
return this.toBuilder()
.withMaximumTemperature(this.maximumTemperature.max(element))
.withTemperature(this.temperature.add(element))
.withCount(this.count + 1)
.build();
}
public TemperatureAccumulator add(TemperatureAccumulator otherAccumulator) {
return this.toBuilder()
.withTemperature(this.maximumTemperature.max(otherAccumulator.maximumTemperature))
.withTemperature(this.temperature.add(otherAccumulator.temperature))
.withCount(this.count + otherAccumulator.count)
.build();
}
public BigDecimal getAverageTemperature() {
return temperature.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_DOWN);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy