/*******************************************************************************
* Copyright (c) 2004, 2010 BREDEX GmbH.
* 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:
* BREDEX GmbH - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.jubula.client.core.model;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @author BREDEX GmbH
* @created 19.12.2005
*/
public interface IExecTestCasePO extends ITestCasePO {
/**
* Gets the name of this node or, if na name is set,
* gets the name of the SpecTestCase.
* {@inheritDoc}
* @return
*/
public abstract String getName();
/**
* Gets the real name of this execTC
* {@inheritDoc}
* @return
*/
public abstract String getRealName();
/**
* Gets the comment of this node or, if no comment is set,
* gets the comment of the SpecTestCase.
* {@inheritDoc}
* @return
*/
public abstract String getComment();
/**
* @return Returns the specTestCase.
*/
public abstract ISpecTestCasePO getSpecTestCase();
/**
* {@inheritDoc}
* ExecTestCasePO doesn't have an own parameter list
* it uses generally the parameter from associated specTestCase
*/
public abstract List<IParamDescriptionPO> getParameterList();
/**
*
* @return the GUID of the parent project of the referenced test case.
*/
public abstract String getProjectGuid();
/**
*
* @return the GUID of the specTestCase.
*/
public abstract String getSpecTestCaseGuid();
/**
* {@inheritDoc}
* @return the TDManagerPO from the depending SpecTestCasePO.
*/
public abstract ITDManager getDataManager();
/**
* Sets the data manager and changes the <code>hasReferencedTD</code> flag
* to <code>false</code>, so that {@link #getHasReferencedTD()} will
* return <code>false</code> after this call.
*
* {@inheritDoc}
*/
public abstract void setDataManager(ITDManager dataManager);
/**
* Resolves the reference to the test data manager of the associated
* specification test case node. This method creates a deep copy of the test
* data manager an sets it as it's own manager.
*
* @return The new test data manager
*/
public abstract ITDManager resolveTDReference();
/**
* {@inheritDoc}
*/
public abstract Iterator<INodePO> getNodeListIterator();
/**
* public getter for unmodifiable map of eventExecTestCases
* @return map ov eventExecTestCases
*/
public abstract Map<String, IEventExecTestCasePO> getEventMap();
/**
* @param eventType eventType, for which to set the flag
* @param flag signals, if the associated eventhandler for given eventType
* will be reused (flag = true) or overwritten (flag = false)
*/
public abstract void setFlagForRefEventTc(String eventType, boolean flag);
/**
* @param eventType eventType, for which to get the flag
* @return flag, which signals, if the eventhandler for given eventType is
* referenced from associated specTestCase or overwritten
*/
public abstract boolean getFlagForRefEventTc(String eventType);
/**
* Adds the component name pair to the internal map if the pair doesn't
* exist.
*
* @param pair
* The component name pair
*/
public abstract void addCompNamesPair(ICompNamesPairPO pair);
/**
* Removes the component name pair with the passed first name from the
* internal map.
*
* @param firstName
* The first name
*/
public abstract void removeCompNamesPair(String firstName);
/**
* Gets the component name pair with the past first name.
*
* @param firstName
* The first name
* @return The component name pair or <code>null</code>, if the internal
* map doesn't contain a component name pair with the passed first
* name
*/
public abstract ICompNamesPairPO getCompNamesPair(String firstName);
/**
* @return An unmodifyable list of all component name pairs
*/
public abstract Collection<ICompNamesPairPO> getCompNamesPairs();
/**
* Sets the SpecTestCase and adds this node to the SpecTestCase.
* @param specTestCase The specTestCase to set.
*/
public void setSpecTestCase(ISpecTestCasePO specTestCase);
/**
* Clears the cached Spec Test Case for this Exec Test Case. This is used
* in order to prevent trying to transitively load data from an
* incorrect / closed session.
*/
public void clearCachedSpecTestCase();
/**
* for performance reason is the cached objects set while preloading
* @param spec ISpecTestCasePO
*/
public void setCachedSpecTestCase(ISpecTestCasePO spec);
/**
* synchronizes the list of parameter unique ids in TDManagers of ExecTestCases
* and the associated parameter list
*/
public abstract void synchronizeParameterIDs();
/**
* Checks if all Data Columns have a dependent Parameter.
* @return true if all Data Columns have a dependent Parameter,
* false otherwise.
*/
public boolean checkHasUnusedTestData();
/**
* @return <code>true</code> if the test data for this node is referenced
* from another node (meaning that this node does not manage
* its own test data). Otherwise, <code>false</code>.
*/
public abstract boolean getHasReferencedTD();
/**
* @param hasReferencedTD
* set to <code>true</code> if the test data for this node should
* be referenced from another node (meaning that this node does
* not manage its own test data). Otherwise, <code>false</code>.
*/
public abstract void setHasReferencedTD(boolean hasReferencedTD);
}