1   package com.atlassian.core.util;
2   
3   public class ProgressWrapper
4   {
5       private ProgressMeter progressMeter;
6       private int currentCount;
7       private int totalCount;
8   
9       public ProgressWrapper(ProgressMeter progressMeter, int totalCount)
10      {
11          this.progressMeter = progressMeter;
12          this.totalCount = totalCount;
13          progressMeter.setTotalObjects(totalCount);
14          this.currentCount = 0;
15      }
16  
17      public synchronized void incrementCounter()
18      {
19          currentCount++;
20          progressMeter.setPercentage(currentCount, totalCount);
21      }
22  
23      public synchronized void incrementCounter(String status)
24      {
25          currentCount++;
26          progressMeter.setPercentage(currentCount, totalCount);
27          progressMeter.setStatus(status);
28      }
29  
30      public synchronized void setStatus(String status)
31      {
32          progressMeter.setStatus(status);
33      }
34  
35      public synchronized int getTotal()
36      {
37          return progressMeter.getTotal();
38      }
39  
40      public synchronized void setPercentage(int percentageComplete)
41      {
42          progressMeter.setPercentage(percentageComplete);
43      }
44  
45      public String progressAsString()
46      {
47          return currentCount + " of " + totalCount + " total objects.";
48      }
49  }