1 /*******************************************************************************
2  * Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  *    Marc R. Hoffmann - initial API and implementation
10  *
11  *******************************************************************************/
12 package org.jacoco.report;
13 
14 /**
15  * Interface to create programming language specific names from VM names.
16  */
17 public interface ILanguageNames {
18 
19 	/**
20 	 * Calculates the language specific name of a package.
21 	 *
22 	 * @param vmname
23 	 *            vm name of a package
24 	 * @return language specific notation for the package
25 	 */
getPackageName(String vmname)26 	public String getPackageName(String vmname);
27 
28 	/**
29 	 * Calculates the language specific name of a class.
30 	 *
31 	 * @param vmname
32 	 *            vm name of a class
33 	 * @param vmsignature
34 	 *            vm signature of the class (may be <code>null</code>)
35 	 * @param vmsuperclass
36 	 *            vm name of the superclass of the class (may be
37 	 *            <code>null</code>)
38 	 * @param vminterfaces
39 	 *            vm names of interfaces of the class (may be <code>null</code>)
40 	 * @return language specific notation of the class
41 	 */
getClassName(String vmname, String vmsignature, String vmsuperclass, String[] vminterfaces)42 	public String getClassName(String vmname, String vmsignature,
43 			String vmsuperclass, String[] vminterfaces);
44 
45 	/**
46 	 * Calculates the language specific qualified name of a class.
47 	 *
48 	 * @param vmname
49 	 *            vm name of a class
50 	 * @return language specific qualified notation of the class
51 	 */
getQualifiedClassName(String vmname)52 	public String getQualifiedClassName(String vmname);
53 
54 	/**
55 	 * Calculates the language specific name of a method.
56 	 *
57 	 * @param vmclassname
58 	 *            vm name of a containing class
59 	 * @param vmmethodname
60 	 *            vm name of the method
61 	 * @param vmdesc
62 	 *            vm method descriptor
63 	 * @param vmsignature
64 	 *            vm signature of the method (may be <code>null</code>)
65 	 * @return language specific notation for the method
66 	 */
getMethodName(String vmclassname, String vmmethodname, String vmdesc, String vmsignature)67 	public String getMethodName(String vmclassname, String vmmethodname,
68 			String vmdesc, String vmsignature);
69 
70 	/**
71 	 * Calculates the language specific fully qualified name of a method.
72 	 *
73 	 * @param vmclassname
74 	 *            vm name of a containing class
75 	 * @param vmmethodname
76 	 *            vm name of the method
77 	 * @param vmdesc
78 	 *            vm method descriptor
79 	 * @param vmsignature
80 	 *            vm signature of the method (may be <code>null</code>)
81 	 * @return language specific notation for the method
82 	 */
getQualifiedMethodName(String vmclassname, String vmmethodname, String vmdesc, String vmsignature)83 	public String getQualifiedMethodName(String vmclassname,
84 			String vmmethodname, String vmdesc, String vmsignature);
85 
86 }
87