package edu.ucsb.jpregel.system; import api.Aggregator; import java.util.concurrent.atomic.AtomicInteger; /** * Aggregates maximum value of AtomicInteger objects. * Thread-safe. * @author Pete Cappello */ public class AggregatorMaxInteger extends Aggregator<AtomicInteger> { public AggregatorMaxInteger() { super(); } public AggregatorMaxInteger( AtomicInteger atomicInteger ) { super( atomicInteger ); } @Override synchronized public void aggregate( Aggregator<AtomicInteger> aggregator ) { // 1st get returns AtomicInteger; 2nd returns int value if ( get().get() < aggregator.get().get() ) { set( aggregator ); } } @Override public AtomicInteger identityElement() { return new AtomicInteger(); } @Override public Aggregator make() { return new AggregatorMaxInteger(); } }