blob: e4e2ee4293972dc47e43502f27e21f96dd6a4613 [file] [log] [blame]
/*
*******************************************************************************
* Copyright (C) 2007, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
package com.ibm.icu.dev.test.util;
/**
* @author srl
*
*/
public class DebugUtilities {
/**
* Count enum types
* @return the number of enum types available, starting at 0
*/
public static int typeCount() {
return DebugUtilitiesData.TYPES.length;
}
/**
* Fetch the name of a particular type of enum
* @param type the enum type
* @return the name of the enum
*/
public static String typeString(int type) {
return enumString(DebugUtilitiesData.UDebugEnumType, type);
}
/**
* Count the number of available enum values for an item, from 0
* @param type which enum to look up, such as DebugUtilitiesData.UCalendarDateFields
* @return the number of available enum values
*/
public static int enumCount(int type) {
return DebugUtilitiesData.NAMES[type].length;
}
/**
* Fetch the name of an enum
* @param type which enum to look up, such as DebugUtilitiesData.UCalendarDateFields
* @param field which enum value to look up
* @return the found name. Will throw an exception on out of bounds.
*/
public static String enumString(int type, int field) {
return DebugUtilitiesData.NAMES[type][field];
}
/**
* Lookup an enum by string
* @param type which enum to look up, such as DebugUtilitiesData.UCalendarDateFields
* @param string the string to search for
* @return the found enum value, or -1 if not found
*/
public static int enumByString(int type, String string) {
for(int j=0;j<DebugUtilitiesData.NAMES[type].length;j++) {
if(string.equals(DebugUtilitiesData.NAMES[type][j])) {
return j;
}
}
return -1;
}
/**
* for consistency checking
* @param type the type of enum
* @return the expected ordinal value (should be equal to "field")
* @internal
*/
public static int enumArrayValue(int type, int field) {
return DebugUtilitiesData.VALUES[type][field];
}
}