/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.security.userstore.connector.synchronize.status; import java.util.concurrent.atomic.AtomicInteger; public class AbstractRemoteStatus { /* Progress */ private final AtomicInteger totalCount = new AtomicInteger( -1 ); private final AtomicInteger currentCount = new AtomicInteger( -1 ); /* Actions */ private final AtomicInteger createdCount = new AtomicInteger( 0 ); private final AtomicInteger updatedCount = new AtomicInteger( 0 ); private final AtomicInteger resurrectedCount = new AtomicInteger( 0 ); private final AtomicInteger skippedCount = new AtomicInteger( 0 ); public void setTotalCount( final int value ) { totalCount.set( value ); currentCount.set( 0 ); } public int getTotalCount() { return totalCount.get(); } public int getCurrentCount() { return currentCount.get(); } public int getCreatedCount() { return createdCount.get(); } public int getUpdatedCount() { return updatedCount.get(); } public int getResurrectedCount() { return resurrectedCount.get(); } public int getSkippedCount() { return skippedCount.get(); } public void created() { createdCount.incrementAndGet(); currentCount.incrementAndGet(); } public void updated( final boolean resurrected ) { updatedCount.incrementAndGet(); currentCount.incrementAndGet(); if ( resurrected ) { resurrectedCount.incrementAndGet(); } } public void skipped() { skippedCount.incrementAndGet(); currentCount.incrementAndGet(); } public boolean inProgress() { int total = totalCount.get(); return total > -1 && total != currentCount.get(); } }