class ReducingStateDescriptor extends StateDescriptor<ReducingState<T>, T> {

	public ReducingStateDescriptor(String name, ReduceFunction<T> reduceFunction, Class<T> typeClass) {
		super(name, typeClass, null);
		this.reduceFunction = checkNotNull(reduceFunction);

		if (reduceFunction instanceof RichFunction) {
			throw new UnsupportedOperationException("ReduceFunction of ReducingState can not be a RichFunction.");
		}
	}

	public  ReducingStateDescriptor(String name, ReduceFunction<T> reduceFunction, Class<T> typeClass);
	public  ReducingStateDescriptor(String name, ReduceFunction<T> reduceFunction, TypeInformation<T> typeInfo);
	public  ReducingStateDescriptor(String name, ReduceFunction<T> reduceFunction, TypeSerializer<T> typeSerializer);

}