1 package org.codehaus.xfire.aegis.type.java5;
2
3 import javax.xml.namespace.QName;
4
5 import org.codehaus.xfire.aegis.type.TypeMapping;
6 import org.codehaus.xfire.aegis.type.basic.BeanType;
7 import org.codehaus.xfire.util.NamespaceHelper;
8 import org.codehaus.xfire.util.ServiceUtils;
9
10 public class AnnotatedType
11 extends BeanType
12 {
13 public AnnotatedType(Class clazz)
14 {
15 super(new AnnotatedTypeInfo(clazz));
16
17 setSchemaType(createSchemaType());
18 }
19
20 public QName createSchemaType()
21 {
22 String name = null;
23 String ns = null;
24
25 XmlType xtype = (XmlType) getTypeClass().getAnnotation(XmlType.class);
26 if (xtype != null)
27 {
28 name = xtype.name();
29 ns = xtype.namespace();
30 }
31
32 String clsName = getTypeClass().getName();
33 if (name == null || name.length() == 0)
34 name = ServiceUtils.makeServiceNameFromClassName(getTypeClass());
35
36 if (ns == null || ns.length() == 0)
37 ns = NamespaceHelper.makeNamespaceFromClassName(clsName, "http");
38
39 return new QName(ns, name);
40 }
41
42 @Override
43 public void setTypeMapping(TypeMapping typeMapping)
44 {
45 getTypeInfo().setTypeMapping(typeMapping);
46
47 super.setTypeMapping(typeMapping);
48 }
49
50
51 }