/* 740 */ name = WSDLUtils.getJustClassName(javaType);
/* */ }
/* */
/* 743 */ List particles = new ArrayList(0);
/* 744 */ List types = new ArrayList(0);
/* 745 */ JBossXSComplexTypeDefinition complexType = new JBossXSComplexTypeDefinition();
/* 746 */ complexType.setName(name);
/* 747 */ complexType.setNamespace(namespace);
/* */
/* 749 */ this.xsModel.addXSComplexTypeDefinition(complexType);
/* 750 */ this.xsModel.addXSElementDeclaration(this.sutils.createGlobalXSElementDeclaration(name, complexType, namespace));
/* 751 */ this.typeMapping.register(javaType, new QName(namespace, name), null, null);
/* 752 */ registerJavaTypeMapping(new QName(namespace, name), javaType, "complexType", particles, null);
/* */
/* 754 */ Class superClass = javaType.getSuperclass();
/* 755 */ if ((!Exception.class.equals(superClass)) || (Throwable.class.equals(superClass)))
/* */ {
/* 757 */ JBossXSTypeDefinition baseType = generateType(null, superClass);
/* 758 */ complexType.setBaseType(baseType);
/* */ }
/* */
/* 761 */ generateExceptionParticles(namespace, javaType, types, particles);
/* */
/* 763 */ boolean found = hasConstructor(javaType, types);
/* 764 */ boolean noarg = (found) && (types.size() == 0);
/* */
/* 766 */ if ((!found) || (noarg))
/* */ {
/* 770 */ ArrayList newTypes = new ArrayList(types);
/* 771 */ newTypes.add(0, String.class);
/* 772 */ found = hasConstructor(javaType, newTypes);
/* 773 */ if (found)
/* */ {
/* 775 */ insertBaseParticle(particles, "message", String.class, namespace);
/* */ }
/* 780 */ else if (!noarg) {
/* 781 */ throw new IllegalArgumentException("Could not locate a constructor with the following types: " + javaType + ' ' + types);
/* */ }
/* */ }
/* */
/* 785 */ complexType.setParticle(createGroupParticle(namespace, particles));
/* */
/* 787 */ return complexType;
/* */ }