java/copy-image-resizer/src/cz/frantovo/copyImageResizer/Counters.java
author František Kučera <franta-hg@frantovo.cz>
Mon, 17 Nov 2014 20:13:15 +0100
changeset 13 28aa5f597457
parent 12 27e41d7f5e8d
permissions -rw-r--r--
increment counters
     1 /**
     2  * copy-image-resizer
     3  * Copyright © 2014 František Kučera (frantovo.cz)
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, either version 3 of the License, or
     8  * (at your option) any later version.
     9  *
    10  * This program is distributed in the hope that it will be useful,
    11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  * GNU General Public License for more details.
    14  *
    15  * You should have received a copy of the GNU General Public License
    16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    17  */
    18 package cz.frantovo.copyImageResizer;
    19 
    20 import java.util.EnumMap;
    21 import java.util.Map;
    22 
    23 /**
    24  *
    25  * @author Ing. František Kučera (frantovo.cz)
    26  */
    27 public class Counters {
    28 
    29 	private final Map<COUNTER_TYPE, Integer> data = new EnumMap(COUNTER_TYPE.class);
    30 
    31 	public int increment(COUNTER_TYPE counter) {
    32 		synchronized (data) {
    33 			int value = get(counter);
    34 			value++;
    35 			data.put(counter, value);
    36 			return value;
    37 		}
    38 	}
    39 
    40 	public int get(COUNTER_TYPE counter) {
    41 		Integer value = data.get(counter);
    42 		return value == null ? 0 : value;
    43 	}
    44 
    45 	@Override
    46 	public String toString() {
    47 		StringBuilder sb = new StringBuilder();
    48 
    49 		sb.append("Counters: ");
    50 
    51 		for (COUNTER_TYPE counter : COUNTER_TYPE.values()) {
    52 			sb.append(counter);
    53 			sb.append("=");
    54 			sb.append(get(counter));
    55 			sb.append(" ");
    56 			
    57 		}
    58 
    59 		return sb.toString();
    60 	}
    61 
    62 	public static enum COUNTER_TYPE {
    63 
    64 		DIRECTORIES,
    65 		FILES,
    66 		RESIZED,
    67 		JUST_COPIED,
    68 		SKIPPED_UNKNOWN_EXTENSION,
    69 		SKIPPED_ERROR;
    70 
    71 		@Override
    72 		public String toString() {
    73 			return name().toLowerCase();
    74 		}
    75 
    76 	}
    77 }