001 package org.kuali.maven.plugins.graph.tree; 002 003 /** 004 * Thread safe counter 005 */ 006 public class Counter implements Comparable<Counter> { 007 008 private int count; 009 010 public Counter() { 011 this(0); 012 } 013 014 public Counter(int count) { 015 super(); 016 this.count = count; 017 } 018 019 public synchronized int increment() { 020 if (count == Integer.MAX_VALUE) { 021 throw new RuntimeException("Maximum counter value exceeded"); 022 } else { 023 return count++; 024 } 025 } 026 027 public synchronized int getCount() { 028 return count; 029 } 030 031 @Override 032 public synchronized int compareTo(Counter other) { 033 return count > other.count ? 1 : count < other.count ? -1 : 0; 034 } 035 036 }