You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by meiercaleb <gi...@git.apache.org> on 2018/01/05 21:53:51 UTC

[GitHub] incubator-rya pull request #257: RYA-377 Rya Streams

Github user meiercaleb commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/257#discussion_r159983828
  
    --- Diff: common/rya.api.function/src/main/java/org/apache/rya/api/function/aggregation/AverageFunction.java ---
    @@ -0,0 +1,96 @@
    +/*
    + * 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.rya.api.function.aggregation;
    +
    +import static com.google.common.base.Preconditions.checkArgument;
    +
    +import java.math.BigDecimal;
    +import java.math.BigInteger;
    +import java.util.Map;
    +
    +import org.apache.rya.api.model.VisibilityBindingSet;
    +import org.openrdf.model.Literal;
    +import org.openrdf.model.Value;
    +import org.openrdf.model.datatypes.XMLDatatypeUtil;
    +import org.openrdf.model.impl.DecimalLiteralImpl;
    +import org.openrdf.model.impl.IntegerLiteralImpl;
    +import org.openrdf.query.algebra.MathExpr.MathOp;
    +import org.openrdf.query.algebra.evaluation.ValueExprEvaluationException;
    +import org.openrdf.query.algebra.evaluation.util.MathUtil;
    +import org.openrdf.query.impl.MapBindingSet;
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +
    +import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
    +import edu.umd.cs.findbugs.annotations.NonNull;
    +
    +/**
    + * Update the {@link AggregationState}'s average if the child Binding Set contains the binding name
    + * that is being averaged by the {@link AggregationElement}.
    + */
    +@DefaultAnnotation(NonNull.class)
    +public final class AverageFunction implements AggregationFunction {
    +    private static final Logger log = LoggerFactory.getLogger(AverageFunction.class);
    +
    +    @Override
    +    public void update(final AggregationElement aggregation, final AggregationState state, final VisibilityBindingSet childBindingSet) {
    +        checkArgument(aggregation.getAggregationType() == AggregationType.AVERAGE, "The AverageFunction only accepts AVERAGE AggregationElements.");
    --- End diff --
    
    Preconditions.


---