1 package org.codehaus.xfire.util;
2
3 import javax.xml.namespace.QName;
4
5 /***
6 * Helps when constructing, or using services.
7 *
8 * @author Arjen Poutsma
9 */
10 public class ServiceUtils
11 {
12 private ServiceUtils()
13 {
14
15 }
16
17 /***
18 * Generates a suitable service name from a given class. The returned name is the simple name of the class, i.e.
19 * without the package name.
20 *
21 * @param clazz the class.
22 * @return the name.
23 */
24 public static String makeServiceNameFromClassName(Class clazz)
25 {
26 String name = clazz.getName();
27 int last = name.lastIndexOf(".");
28 if (last != -1)
29 {
30 name = name.substring(last + 1);
31 }
32
33 int inner = name.lastIndexOf("$");
34 if (inner != -1)
35 {
36 name = name.substring(inner + 1);
37 }
38
39 return name;
40 }
41
42 public static QName makeQualifiedNameFromClass(Class clazz)
43 {
44 String namespace = NamespaceHelper.makeNamespaceFromClassName(clazz.getName(), "http");
45 String localPart = makeServiceNameFromClassName(clazz);
46 return new QName(namespace, localPart);
47 }
48
49 }