/*******************************************************************************
* 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.Set;
import org.eclipse.jubula.tools.internal.objects.IComponentIdentifier;
/**
* @author BREDEX GmbH
* @created 20.12.2005
*/
public interface IObjectMappingAssoziationPO
extends IPersistentObject, IComponentNameReuser {
/**
* @return Returns the type.
*/
public abstract String getType();
/**
* @param type The type to set.
*/
public abstract void setType(String type);
/**
* @param logicalNames list of GUIDs of ComponentNamePOs to set.
*/
public abstract void setLogicalNames(Set<String> logicalNames);
/**
* adds a logical Name GUID
* @param name a GUID of a ComponentNamePO of a logical name
*/
public abstract void addLogicalName(String name);
/**
* removes a logical name GUID
* @param name a GUID of a ComponentNamePO of a logical name
*/
public abstract void removeLogicalName(String name);
/**
* @return Returns the technicalName.
*/
public abstract ICompIdentifierPO getTechnicalName();
/**
* @return Returns the list of GUIDs of ComponentNamePOs.
*/
public abstract Set<String> getLogicalNames();
/**
* @param technicalName The technicalName to set.
*/
public abstract void setTechnicalName(ICompIdentifierPO technicalName);
/**
* @return Returns the category.
*/
public abstract IObjectMappingCategoryPO getCategory();
/**
* Note: Due to the way this class is mapped with Persistence (JPA / EclipseLink), this method
* should only be called by <code>ObjectMappingCategoryPO</code>. Other
* callers should use <code>IObjectMappingCategory.addAssociation()</code>
* instead.
*
* @param category The category to set.
*/
public abstract void setCategory(IObjectMappingCategoryPO category);
/**
* @return string representation of this object
*/
public abstract String getName();
/**
* @return the top-level category to which this association belongs.
* This is <code>null</code> if the association does not belong to
* a category.
*/
public abstract IObjectMappingCategoryPO getSection();
/**
* @return the compIdentifier of this technical component - only avaiable
* shortly (until the next editor save) after this technical component has been collected during
* object mapping / collecting mode.
*/
public IComponentIdentifier getCompIdentifier();
/**
* @param compId
* set the compIdentifier of this technical component - only used
* shortly after this technical component has been collected
* during object mapping / collecting mode.
*/
public void setCompIdentifier(IComponentIdentifier compId);
}