/*******************************************************************************
* Copyright (c) 2008 xored software, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.testing;
/**
* Test category engine. New instances of this interface are created for each
* test run. It used only during test launch and building internal data model.
* After the test launch is completed all internal data structures are built and
* implementations of this interface are not used anymore.
*/
public interface ITestCategoryEngine {
/**
* Initializes this category engine. Returns <code>true</code> if this
* engine should be used for the specified launch or <code>false</code>
* otherwise.
*
* @param runnerUI
* @return
*/
boolean initialize(ITestRunnerUI runnerUI);
/**
* Returns the array of categories to be placed in the test tree initially.
* This method could return <code>null</code> if it does not require initial
* categories to be added to the test tree.
*
* @return
*/
TestCategoryDescriptor[] getInitialCategories();
/**
* Returns the category this test should be placed in or <code>null</code>.
*
* @param id
* @param name
* @param isSuite
* @return
*/
TestCategoryDescriptor getCategory(String id, String name, boolean isSuite);
}