/*********************************************************************************************************************** * Copyright (C) 2010-2013 by the Stratosphere project (http://stratosphere.eu) * * Licensed 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 eu.stratosphere.test.recordJobs.graph.pageRankUtil; import eu.stratosphere.api.common.aggregators.Aggregator; public class PageRankStatsAggregator implements Aggregator<PageRankStats> { private double diff = 0; private double rank = 0; private double danglingRank = 0; private long numDanglingVertices = 0; private long numVertices = 0; private long edges = 0; @Override public PageRankStats getAggregate() { return new PageRankStats(diff, rank, danglingRank, numDanglingVertices, numVertices, edges); } public void aggregate(double diffDelta, double rankDelta, double danglingRankDelta, long danglingVerticesDelta, long verticesDelta, long edgesDelta) { diff += diffDelta; rank += rankDelta; danglingRank += danglingRankDelta; numDanglingVertices += danglingVerticesDelta; numVertices += verticesDelta; edges += edgesDelta; } @Override public void aggregate(PageRankStats pageRankStats) { diff += pageRankStats.diff(); rank += pageRankStats.rank(); danglingRank += pageRankStats.danglingRank(); numDanglingVertices += pageRankStats.numDanglingVertices(); numVertices += pageRankStats.numVertices(); edges += pageRankStats.edges(); } @Override public void reset() { diff = 0; rank = 0; danglingRank = 0; numDanglingVertices = 0; numVertices = 0; edges = 0; } }