package org.rhq.plugins.jbosscache3.test; import java.util.HashMap; import java.util.Map; public class CacheStatus { private static Map<CacheOperations, CacheStatusName> CACHE_OPERATION_RUNNING = new HashMap<CacheOperations, CacheStatusName>(); private static Map<CacheOperations, CacheStatusName> CACHE_OPERATION_FINISHED = new HashMap<CacheOperations, CacheStatusName>(); static { CACHE_OPERATION_RUNNING.put(CacheOperations.START, CacheStatusName.STARTING); CACHE_OPERATION_RUNNING.put(CacheOperations.CREATE, CacheStatusName.CREATING); CACHE_OPERATION_RUNNING.put(CacheOperations.DESTROY, CacheStatusName.DESTROYING); CACHE_OPERATION_RUNNING.put(CacheOperations.STOP, CacheStatusName.STOPPING); CACHE_OPERATION_FINISHED.put(CacheOperations.START, CacheStatusName.STARTED); CACHE_OPERATION_FINISHED.put(CacheOperations.CREATE, CacheStatusName.CREATED); CACHE_OPERATION_FINISHED.put(CacheOperations.DESTROY, CacheStatusName.DESTROYED); CACHE_OPERATION_FINISHED.put(CacheOperations.STOP, CacheStatusName.STOPPED); } public enum CacheOperations { START("start"), STOP("stop"), CREATE("create"), DESTROY("destroy"); private String operationName; private CacheOperations(String operationName) { this.operationName = operationName; } public String getOperationName() { return operationName; } public static CacheOperations getStatusName(String opName) throws Exception { for (CacheOperations name : CacheOperations.values()) { if (name.getOperationName().equals(opName)) return name; } throw new Exception("Status not found."); } public static boolean contains(String opName) { try { getStatusName(opName); return true; } catch (Exception e) { return false; } } } public enum CacheStatusName { STARTED("STARTED"), STARTING("STARTING"), CREATED("CREATED"), CREATING( "CREATING"), DESTROYED("DESTROYED"), DESTROYING("DESTROYING"), STOPPED( "STOPPED"), STOPPING("STOPPING"); private String cacheName; private CacheStatusName(String name) { this.cacheName = name; } public String getCacheName() { return cacheName; } public static CacheStatusName getStatusName(String statusName) throws Exception { for (CacheStatusName name : CacheStatusName.values()) { if (name.getCacheName().equals(statusName)) return name; } throw new Exception("Status not found."); } } public static boolean isOperationRunning(String name) { try { CacheOperations operation = CacheOperations.getStatusName(name); CacheStatusName statusName = CACHE_OPERATION_RUNNING.get(operation); if (statusName != null) if (statusName.getCacheName().equals(name)) return true; else return false; } catch (Exception e) { return false; } return false; } public static boolean isOperationFinished(String name) { try { CacheOperations operation = CacheOperations.getStatusName(name); CacheStatusName statusName = CACHE_OPERATION_FINISHED .get(operation); if (statusName != null) if (statusName.getCacheName().equals(name)) return true; else return false; } catch (Exception e) { return false; } return false; } }