/** ******************************************************************************* * Copyright (C) 2001-2009, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package com.ibm.icu.dev.test; import java.util.Iterator; /** * Represents a collection of test data described in a file. * */ public interface TestDataModule { /** * Return the name of this test data module. */ public String getName(); /** * Get additional data related to the module, e.g. DESCRIPTION, * global settings. Might be null. */ public DataMap getInfo(); /** * Returns the TestData corresponding to name, or null if name not * found in this module. Throw error if name is not found. * @throws DataModuleFormatError */ public TestData getTestData(String name) throws DataModuleFormatError; /** * @return Iterator */ public Iterator getTestDataIterator(); public static class Factory{ static final TestDataModule get(String baseName, String localeName) throws DataModuleFormatError { return new ResourceModule(baseName, localeName); } } public static class DataModuleFormatError extends Exception{ /** * For serialization */ private static final long serialVersionUID = 4312521272388482529L; public DataModuleFormatError(String msg){ super(msg); } public DataModuleFormatError(String msg, Throwable cause){ super(msg, cause); } public DataModuleFormatError(Throwable cause) { super(cause); } } /** * Represents a single test in the module. */ public static interface TestData { public String getName(); /** * Get additional data related to the test data, e.g. DESCRIPTION, * global settings. Might be null. */ public DataMap getInfo(); /** * @return Iterator */ public Iterator getSettingsIterator(); /** * @return Iterator */ public Iterator getDataIterator(); } /** * Map-like interface for accessing key-value pairs by key. * If the vaule is not found by given key, return null. * The behavior is analogous the get() method of the Map interface. * * @author Raymond Yang */ public interface DataMap { // public abstract boolean isDefined(String key); // public abstract Object getObject(String key); public abstract String getString(String key); // public abstract char getChar(String key); // public abstract int getInt(String key); // public abstract byte getByte(String key); // public abstract boolean getBoolean(String key); // // public abstract Object[] getObjectArray(String key); // public abstract String[] getStringArray(String key); // public abstract char[] getCharArray(String key); // public abstract int[] getIntArray(String key); // public abstract byte[] getByteArray(String key); // public abstract boolean[] getBooleanArray(String key); } }