/******************************************************************************* * Copyright (c) 2014 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.api.converter; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.eclipse.jubula.client.api.converter.exceptions.InvalidNodeNameException; import org.eclipse.jubula.client.api.converter.utils.ProjectCache; import org.eclipse.jubula.client.api.converter.utils.Utils; import org.eclipse.jubula.client.core.model.INodePO; import org.eclipse.jubula.client.core.model.IProjectPO; import org.eclipse.jubula.client.ui.rcp.Plugin; import org.eclipse.jubula.tools.internal.constants.StringConstants; import org.eclipse.jubula.tools.internal.exception.JBException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Information for Creating a Java Class corresponding to a Node * @created 28.10.2014 */ public class NodeInfo { /** maps a UUID from a test case/suite/job to the name of its * corresponding node info for generation */ private static Map<String, NodeInfo> uuidToClassNameMap; /** The class name of the test case */ private String m_className; /** The base path of the package */ private String m_packageBasePath; /** The node */ private INodePO m_node; /** the default toolkit */ private String m_defaultToolkit; /** the fully qualified name */ private String m_fqName; /** the package name */ private String m_packageName; /** the project name */ private String m_projectName; /** the fileName */ private String m_fileName; /** the fully qualified file name */ private String m_fqFileName; /** * @param fqFileName the fully qualified file name * @param node the node * @param packageBasePath the base path of the package * @param defaultToolkit the default toolkit */ public NodeInfo (String fqFileName, INodePO node, String packageBasePath, String defaultToolkit) { m_fqFileName = fqFileName; m_fileName = StringUtils.substringBeforeLast(m_fqFileName, ".java"); //$NON-NLS-1$ m_className = StringUtils.substringAfterLast(m_fileName, StringConstants.SLASH); m_node = node; m_packageBasePath = packageBasePath; m_defaultToolkit = defaultToolkit; Logger log = LoggerFactory.getLogger(NodeInfo.class); IProjectPO project = null; try { project = ProjectCache.get(node.getParentProjectId()); } catch (JBException e) { Plugin.getDefault().writeErrorLineToConsole( "Error while loading project.", true); //$NON-NLS-1$ } try { m_projectName = Utils.translateToPackageName(project); } catch (InvalidNodeNameException e) { log.error(e.getLocalizedMessage()); } m_fqName = Utils.getFullyQualifiedTranslatedName(node, m_packageBasePath, m_projectName); m_packageName = StringUtils.substringBeforeLast(m_fqName, StringConstants.DOT); } /** * @return The class name of the test case */ public String getClassName() { return m_className; } /** * @return The base path of the package */ public String getPackageBasePath() { return m_packageBasePath; } /** * @return The node */ public INodePO getNode() { return m_node; } /** * @return The default toolkit */ public String getDefaultToolkit() { return m_defaultToolkit; } /** * @return The fully qualified name */ public String getFqName() { return m_fqName; } /** * @return The package name */ public String getPackageName() { return m_packageName; } /** * @return The project name */ public String getProjectName() { return m_projectName; } /** * @return the fully qualified file name */ public String getFqFileName() { return m_fqFileName; } /** * @return the uuidToClassNameMap */ public static Map<String, NodeInfo> getUuidToNodeInfoMap() { return uuidToClassNameMap; } /** * @param map the uuidToClassNameMap to set */ public static void setUuidToNodeInfoMap( Map<String, NodeInfo> map) { NodeInfo.uuidToClassNameMap = map; } }