All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.flink.api.java.aggregation.AvgAggregationFunction Maven / Gradle / Ivy

There is a newer version: 1.20.0
Show newest version
package org.apache.flink.api.java.aggregation;
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//package org.apache.flink.api.java.aggregation;
//
//
//public abstract class AvgAggregationFunction extends AggregationFunction {
//	private static final long serialVersionUID = 1L;
//
//
//	@Override
//	public String toString() {
//		return "AVG";
//	}
//	
//	// --------------------------------------------------------------------------------------------
//	
//	public static final class ByteAvgAgg extends AvgAggregationFunction {
//		private static final long serialVersionUID = 1L;
//		
//		private long sum;
//		private long count;
//
//		@Override
//		public void initializeAggregate() {
//			sum = 0;
//			count = 0;
//		}
//
//		@Override
//		public void aggregate(Byte value) {
//			sum += value.byteValue();
//			count++;
//		}
//
//		@Override
//		public Byte getAggregate() {
//			return (byte) (sum / count);
//		}
//	}
//	
//	public static final class ShortAvgAgg extends AvgAggregationFunction {
//		private static final long serialVersionUID = 1L;
//		
//		private long sum;
//		private long count;
//
//		@Override
//		public void initializeAggregate() {
//			sum = 0;
//			count = 0;
//		}
//
//		@Override
//		public void aggregate(Short value) {
//			sum += value.shortValue();
//			count++;
//		}
//
//		@Override
//		public Short getAggregate() {
//			return (short) (sum / count);
//		}
//	}
//	
//	public static final class IntAvgAgg extends AvgAggregationFunction {
//		private static final long serialVersionUID = 1L;
//		
//		private long sum;
//		private long count;
//
//		@Override
//		public void initializeAggregate() {
//			sum = 0;
//			count = 0;
//		}
//
//		@Override
//		public void aggregate(Integer value) {
//			sum += value.intValue();
//			count++;
//		}
//
//		@Override
//		public Integer getAggregate() {
//			return (int) (sum / count);
//		}
//	}
//	
//	public static final class LongAvgAgg extends AvgAggregationFunction {
//		private static final long serialVersionUID = 1L;
//		
//		private long sum;
//		private long count;
//
//		@Override
//		public void initializeAggregate() {
//			sum = 0;
//			count = 0;
//		}
//
//		@Override
//		public void aggregate(Long value) {
//			sum += value.longValue();
//			count++;
//		}
//
//		@Override
//		public Long getAggregate() {
//			return sum / count;
//		}
//	}
//	
//	public static final class FloatAvgAgg extends AvgAggregationFunction {
//		private static final long serialVersionUID = 1L;
//		
//		private float sum;
//		private long count;
//
//		@Override
//		public void initializeAggregate() {
//			sum = 0.0f;
//			count = 0;
//		}
//
//		@Override
//		public void aggregate(Float value) {
//			sum += value.floatValue();
//			count++;
//		}
//
//		@Override
//		public Float getAggregate() {
//			return sum / count;
//		}
//	}
//	
//	public static final class DoubleAvgAgg extends AvgAggregationFunction {
//		private static final long serialVersionUID = 1L;
//		
//		private double sum;
//		private long count;
//
//		@Override
//		public void initializeAggregate() {
//			sum = 0.0;
//			count = 0;
//		}
//
//		@Override
//		public void aggregate(Double value) {
//			sum += value.doubleValue();
//			count++;
//		}
//
//		@Override
//		public Double getAggregate() {
//			return sum / count;
//		}
//	}
//
//	
//	// --------------------------------------------------------------------------------------------
//	
//	public static final class AvgAggregationFunctionFactory implements AggregationFunctionFactory {
//		private static final long serialVersionUID = 1L;
//
//		@SuppressWarnings("unchecked")
//		@Override
//		public  AggregationFunction createAggregationFunction(Class type) {
//			if (type == Long.class) {
//				return (AggregationFunction) new LongAvgAgg();
//			}
//			else if (type == Integer.class) {
//				return (AggregationFunction) new IntAvgAgg();
//			}
//			else if (type == Double.class) {
//				return (AggregationFunction) new DoubleAvgAgg();
//			}
//			else if (type == Float.class) {
//				return (AggregationFunction) new FloatAvgAgg();
//			}
//			else if (type == Byte.class) {
//				return (AggregationFunction) new ByteAvgAgg();
//			}
//			else if (type == Short.class) {
//				return (AggregationFunction) new ShortAvgAgg();
//			}
//			else {
//				throw new UnsupportedAggregationTypeException("The type " + type.getName() + 
//					" has currently not supported for built-in average aggregations.");
//			}
//		}
//	}
//}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy