Package org.jboss.ws.metadata.wsdl.xmlschema

Examples of org.jboss.ws.metadata.wsdl.xmlschema.JBossXSComplexTypeDefinition


      /**
       * Special case: xs:anyType
       */
      if ("anyType".equals(localpart))
      {
         JBossXSComplexTypeDefinition ct = new JBossXSComplexTypeDefinition(localpart, Constants.NS_SCHEMA_XSD);
         ct.setContentType(XSComplexTypeDefinition.CONTENTTYPE_EMPTY);
         xt = ct;
      }
      else
      {
         XSSimpleTypeDefinition xstype = (new SchemaDVFactoryImpl()).getBuiltInType(localpart);
View Full Code Here


      if (valueType != null)
         return handleJAXRPCEnumeration(name, namespace, javaType, valueType);

      // Generate and register the complex type before building it's particles
      // This solves circular reference problems
      JBossXSComplexTypeDefinition complexType = sutils.createXSComplexTypeDefinition(name, baseType, particles, namespace);
      QName registerQName = new QName(namespace, name);
      typeMapping.register(javaType, registerQName, null, null);
      xsModel.addXSComplexTypeDefinition(complexType);

      //Step 2: Generate XSParticles for all the public fields
      particles.addAll(getXSParticlesForPublicFields(namespace, javaType, elementNames));

      //Step 3: Generate XSParticles for the properties
      try
      {
         particles.addAll(introspectJavaProperties(namespace, javaType, elementNames));
      }
      catch (IntrospectionException e)
      {
         log.error("Problem in introspection of the Java Type during type generation", e);
         throw new WSException(e);
      }

      if (elementNames instanceof LinkedHashMap)
         particles = sortNamedOuterParticles(particles, (LinkedHashMap<String, QName>)elementNames);
      else Collections.sort((List)particles);

      registerJavaTypeMapping(registerQName, javaType, "complexType", particles, elementNames);

      JBossXSModelGroup group = (JBossXSModelGroup)complexType.getParticle().getTerm();
      group.setParticles(particles);

      if (log.isDebugEnabled())
         log.debug("generateNewType: " + sutils.write(complexType));
      return complexType;
View Full Code Here

      xsp.setTerm(sutils.createXSElementDeclaration("value", xst, !componentType.isPrimitive()));
      xsp.setMaxOccurs(-1);
      List<XSParticle> particles = new ArrayList<XSParticle>();
      particles.add(xsp);

      JBossXSComplexTypeDefinition complex = sutils.createXSComplexTypeDefinition(name, null, particles, namespace);
      xsModel.addXSComplexTypeDefinition(complex);
      typeMapping.register(javaType, new QName(namespace, name), null, null);

      return complex;
   }
View Full Code Here

         name = WSDLUtils.getJustClassName(javaType);
      }

      List<XSParticle> particles = new ArrayList<XSParticle>(0);
      List<Class> types = new ArrayList<Class>(0);
      JBossXSComplexTypeDefinition complexType = new JBossXSComplexTypeDefinition();
      complexType.setName(name);
      complexType.setNamespace(namespace);

      xsModel.addXSComplexTypeDefinition(complexType);
      xsModel.addXSElementDeclaration(sutils.createGlobalXSElementDeclaration(name, complexType, namespace));
      typeMapping.register(javaType, new QName(namespace, name), null, null);
      generateExceptionParticles(namespace, javaType, types, particles);

      registerJavaTypeMapping(new QName(namespace, name), javaType, "complexType", particles, null);

      Class superClass = javaType.getSuperclass();
      if (!Exception.class.equals(superClass) || Throwable.class.equals(superClass))
      {
         JBossXSTypeDefinition baseType = generateType(null, superClass);
         complexType.setBaseType(baseType);
      }


      boolean found = hasConstructor(javaType, types);
      boolean noarg = found && types.size() == 0;

      if (!found || noarg)
      {
         // Look for a message constructor if a matching constructor could not be found.
         // We also prefer message constructors over a noarg constructor
         ArrayList<Class> newTypes = new ArrayList<Class>(types);
         newTypes.add(0, String.class);
         found = hasConstructor(javaType, newTypes);
         if (found)
         {
            insertBaseParticle(particles, "message", String.class, namespace);
         }
         else
         {
            // If we have a default (0 argument) constructor, fall back to it
            if (!noarg)
               throw new IllegalArgumentException("Could not locate a constructor with the following types: " + javaType + ' ' + types);
         }
      }

      complexType.setParticle(createGroupParticle(namespace, particles));

      return complexType;
   }
View Full Code Here

      /**
       * Special case: xs:anyType
       */
      if ("anyType".equals(localpart))
      {
         JBossXSComplexTypeDefinition ct = new JBossXSComplexTypeDefinition(localpart, Constants.NS_SCHEMA_XSD);
         ct.setContentType(XSComplexTypeDefinition.CONTENTTYPE_EMPTY);
         xt = ct;
      }
      else
      {
         XSSimpleTypeDefinition xstype = (new SchemaDVFactoryImpl()).getBuiltInType(localpart);
View Full Code Here

      if (valueType != null)
         return handleJAXRPCEnumeration(name, namespace, javaType, valueType);

      // Generate and register the complex type before building it's particles
      // This solves circular reference problems
      JBossXSComplexTypeDefinition complexType = sutils.createXSComplexTypeDefinition(name, baseType, particles, namespace);
      QName registerQName = new QName(namespace, name);
      typeMapping.register(javaType, registerQName, null, null);
      xsModel.addXSComplexTypeDefinition(complexType);

      //Step 2: Generate XSParticles for all the public fields
      particles.addAll(getXSParticlesForPublicFields(namespace, javaType, elementNames));

      //Step 3: Generate XSParticles for the properties
      try
      {
         particles.addAll(introspectJavaProperties(namespace, javaType, elementNames));
      }
      catch (IntrospectionException e)
      {
         log.error("Problem in introspection of the Java Type during type generation", e);
         throw new WSException(e);
      }

      if (elementNames instanceof LinkedHashMap)
         particles = sortNamedOuterParticles(particles, (LinkedHashMap<String, QName>)elementNames);
      else Collections.sort((List)particles);

      registerJavaTypeMapping(registerQName, javaType, "complexType", particles, elementNames);

      JBossXSModelGroup group = (JBossXSModelGroup)complexType.getParticle().getTerm();
      group.setParticles(particles);

      if (log.isDebugEnabled())
         log.debug("generateNewType: " + sutils.write(complexType));
      return complexType;
View Full Code Here

      xsp.setTerm(sutils.createXSElementDeclaration("value", xst, !componentType.isPrimitive()));
      xsp.setMaxOccurs(-1);
      List<XSParticle> particles = new ArrayList<XSParticle>();
      particles.add(xsp);

      JBossXSComplexTypeDefinition complex = sutils.createXSComplexTypeDefinition(name, null, particles, namespace);
      xsModel.addXSComplexTypeDefinition(complex);
      typeMapping.register(javaType, new QName(namespace, name), null, null);

      return complex;
   }
View Full Code Here

         name = WSDLUtils.getJustClassName(javaType);
      }

      List<XSParticle> particles = new ArrayList<XSParticle>(0);
      List<Class> types = new ArrayList<Class>(0);
      JBossXSComplexTypeDefinition complexType = new JBossXSComplexTypeDefinition();
      complexType.setName(name);
      complexType.setNamespace(namespace);

      xsModel.addXSComplexTypeDefinition(complexType);
      xsModel.addXSElementDeclaration(sutils.createGlobalXSElementDeclaration(name, complexType, namespace));
      typeMapping.register(javaType, new QName(namespace, name), null, null);
      registerJavaTypeMapping(new QName(namespace, name), javaType, "complexType", particles, null);

      Class superClass = javaType.getSuperclass();
      if (!Exception.class.equals(superClass) || Throwable.class.equals(superClass))
      {
         JBossXSTypeDefinition baseType = generateType(null, superClass);
         complexType.setBaseType(baseType);
      }

      generateExceptionParticles(namespace, javaType, types, particles);

      boolean found = hasConstructor(javaType, types);
      boolean noarg = found && types.size() == 0;

      if (!found || noarg)
      {
         // Look for a message constructor if a matching constructor could not be found.
         // We also prefer message constructors over a noarg constructor
         ArrayList<Class> newTypes = new ArrayList<Class>(types);
         newTypes.add(0, String.class);
         found = hasConstructor(javaType, newTypes);
         if (found)
         {
            insertBaseParticle(particles, "message", String.class, namespace);
         }
         else
         {
            // If we have a default (0 argument) constructor, fall back to it
            if (!noarg)
               throw new IllegalArgumentException("Could not locate a constructor with the following types: " + javaType + ' ' + types);
         }
      }

      complexType.setParticle(createGroupParticle(namespace, particles));

      return complexType;
   }
View Full Code Here

      /**
       * Special case: xs:anyType
       */
      if ("anyType".equals(localpart))
      {
         JBossXSComplexTypeDefinition ct = new JBossXSComplexTypeDefinition(localpart, Constants.NS_SCHEMA_XSD);
         ct.setContentType(XSComplexTypeDefinition.CONTENTTYPE_EMPTY);
         xt = ct;
      }
      else
      {
         XSSimpleTypeDefinition xstype = (new SchemaDVFactoryImpl()).getBuiltInType(localpart);
View Full Code Here

    */
   public void testJBossSchemaCreation() throws Exception
   {
      String typeNS = "http://org.jboss/types";
      JBossXSModel xsmodel = new JBossXSModel();
      JBossXSComplexTypeDefinition ct = new JBossXSComplexTypeDefinition();
      ct.setName("HelloObj");
      ct.setNamespace(typeNS);
      JBossXSParticle xsp = new JBossXSParticle();
      JBossXSElementDeclaration xsel = new JBossXSElementDeclaration();
      xsel.setName("msg");
      xsel.setTypeDefinition(SchemaUtils.getInstance().getSchemaBasicType("string"));
      xsel.setNillable(true);
      xsp.setTerm(xsel);
      ct.setParticle(xsp);
      xsmodel.addXSComplexTypeDefinition(ct)//Always add global complex types to global types
      //Lets write the schema into a file
      File xsdOutFile = new File("tools/wsdlwritedir/HelloObj.xsd");
      xsdOutFile.delete();
      xsmodel.writeTo(new FileOutputStream(xsdOutFile));
View Full Code Here

TOP

Related Classes of org.jboss.ws.metadata.wsdl.xmlschema.JBossXSComplexTypeDefinition

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.