Package org.codehaus.xfire.service

Examples of org.codehaus.xfire.service.MessagePartInfo


        fault.setName(faultInfo.getName());
        fault.setMessage(faultMsg);

        for (Iterator itr = faultInfo.getMessageParts().iterator(); itr.hasNext();)
        {
            MessagePartInfo info = (MessagePartInfo) itr.next();

            String uri = info.getName().getNamespaceURI();
            addNamespace(getNamespacePrefix(uri), uri);

            Part part = createPart(info);
            faultMsg.addPart(part);
        }
View Full Code Here


    private void writeParameters(Message message, Collection params)
    {
        for (Iterator itr = params.iterator(); itr.hasNext();)
        {
            MessagePartInfo param = (MessagePartInfo) itr.next();

            String prefix = getNamespacePrefix(param.getName().getNamespaceURI());
            addNamespace(prefix, param.getName().getNamespaceURI());
           
            addNamespaceImport(getService().getTargetNamespace(), param.getSchemaType()
                    .getSchemaType().getNamespaceURI());

            Part part = createPart(param);
           
            message.addPart(part);
View Full Code Here

     */
    protected void writeParametersSchema(Collection params, Element sequence)
    {
        for (Iterator itr = params.iterator(); itr.hasNext();)
        {
            MessagePartInfo param = (MessagePartInfo) itr.next();

            QName pName = param.getName();
            SchemaType type = param.getSchemaType();

            addDependency(type);
            QName schemaType = type.getSchemaType();

            addNamespaceImport(getService().getTargetNamespace(), schemaType.getNamespaceURI());

            String uri = type.getSchemaType().getNamespaceURI();
            String prefix = getNamespacePrefix(uri);
            addNamespace(prefix, uri);
           
            Element element = new Element("element", AbstractWSDL.XSD_NS);
            sequence.addContent(element);

            if (type.isAbstract())
            {
                element.setAttribute(new Attribute("name", pName.getLocalPart()));

                element.setAttribute(new Attribute("type", prefix + ":"
                                + schemaType.getLocalPart()));
               
                if (type.isNillable())
                {
                    element.setAttribute(new Attribute("nillable", "true"));
                }
            }
            else
            {
                element.setAttribute(new Attribute("ref", prefix + ":" + schemaType.getLocalPart()));
            }

            element.setAttribute(new Attribute("minOccurs", "1"));
            element.setAttribute(new Attribute("maxOccurs", "1"));
            if( param.getDocumentation()!=null){
                element.addContent(createDocElement(param.getDocumentation()));
            }
        }
    }
View Full Code Here

        Map<String, ParamInfo> params = new HashMap<String, ParamInfo>();
        // input parts
        MessageInfo inputMsg = op.getInputMessage();
        for (Iterator pitr = inputMsg.getMessageParts().iterator(); pitr.hasNext();)
        {
            MessagePartInfo part = (MessagePartInfo) pitr.next();
           
            String varName = getUniqueName(javify(part.getName().getLocalPart()), partNames);
            partNames.add(varName);

            JType paramType = schema.getType(context, part);
            ParamInfo param = new ParamInfo(paramType,varName);
            param.setIn(true);
            param.setName(part.getName());
            param.setPart(part);
            params.put(varName, param );

        }
  
        // input parts for each binding
        for (Iterator itr = bindings.iterator(); itr.hasNext();)
        {
            Binding binding = (Binding) itr.next();
            annotate(context, op, method, binding);
           
            List headers = binding.getHeaders(inputMsg).getMessageParts();
            for (Iterator bitr = headers.iterator(); bitr.hasNext();)
            {
                MessagePartInfo part = (MessagePartInfo) bitr.next();
               
                String varName = getUniqueName(javify(part.getName().getLocalPart()), partNames);
                partNames.add(varName);

                JType paramType = schema.getType(context, part);

                ParamInfo param = new ParamInfo(paramType,varName, true);
                param.setIn(true);
                param.setName(part.getName());
                param.setPart(part);
                params.put(varName, param);
               
            }
        }

        if (op.hasOutput() && op.getOutputMessage().size() > 0)
        {
            MessageInfo outputMsg = op.getOutputMessage();
            Iterator rtitr = outputMsg.getMessageParts().iterator();
            MessagePartInfo returnPart = (MessagePartInfo) rtitr.next();
           
            annotateReturnType(method, returnPart);
           
            for (Iterator itr = bindings.iterator(); itr.hasNext();)
            {
                annotateReturnType(method, returnPart, (Binding) itr.next());
            }

            while (rtitr.hasNext())
            {
                MessagePartInfo part = (MessagePartInfo) rtitr.next();
               
                String varName = getUniqueName(javify(part.getName().getLocalPart()), partNames);
                partNames.add(varName);

                JType paramType = getHolderType(context, part);
               
                ParamInfo param = params.get(varName);
                if( param == null ){
                  param = new ParamInfo(paramType,varName)
                }
                param.setOut(true);
                param.setName(part.getName());
                param.setPart(part);
                params.put(varName, param);
               
            }

            // Annotate out message bindings
            for (Iterator itr = bindings.iterator(); itr.hasNext();)
            {
                Binding binding = (Binding) itr.next();
                List headers = binding.getHeaders(outputMsg).getMessageParts();
                for (Iterator bitr = headers.iterator(); bitr.hasNext();)
                {
                    MessagePartInfo part = (MessagePartInfo) bitr.next();
                 
                    String localName = part.getName().getLocalPart();
                    String varName = localName;
                   
                   
                      // The same name used for input/output paramter
                       
                     boolean foundMatch = false;
                    
                     if (partNames.contains(localName)){
                      for (ParamInfo param : params.values()) {
                       String name = param.getPart().getName().getLocalPart();
                       if( localName.equals(name) && param.getPart().getIndex() == part.getIndex()){
                         varName = param.getVarName();
                         foundMatch = true;
                         break;
                       }
                  } 
                    }
                    
                     if( !foundMatch){
                       varName = getUniqueName(javify(localName), partNames)
                         partNames.add(varName);
                     }
                    JType paramType = getHolderType(context, part);
                   
                    ParamInfo param = params.get(varName);
                    if( param == null ){
                      param = new ParamInfo(paramType,varName,true)
                    }
                    param.setOut(true);
                    param.setName(part.getName());
                    param.setParamType(paramType);
                    params.put(varName, param);

                }
            }
View Full Code Here

        throws GenerationException
    {
        JType returnType;
        if (op.hasOutput() && op.getOutputMessage().size() > 0)
        {
            MessagePartInfo returnPart =
                (MessagePartInfo) op.getOutputMessage().getMessageParts().iterator().next();

            returnType = schema.getType(context, returnPart);
        }
        else
View Full Code Here

                   
                    if (messageParts.size() == 0)
                    {
                        throw new IllegalStateException("Fault does not contain a message part: " + service.getName() + " / " + op.getName() + " / " + fault.getName());
                    }
                    MessagePartInfo part = (MessagePartInfo) messageParts.get(0);
                   
                    if (!exClasses.containsKey(fault.getMessageName()))
                    {
                        JClass excls = generateExceptionClass(context, fault, part);
                       
View Full Code Here

    public void writeObject(Object object, MessageWriter writer, MessageContext context)
        throws XFireFault
    {
        XMLStreamWriter sWriter = ((ElementWriter) writer).getXMLStreamWriter();
        Marshaller marshaller;
        MessagePartInfo part = (MessagePartInfo) context
                .getProperty(AegisBindingProvider.CURRENT_MESSAGE_PART);

        try
        {
            marshaller = new Marshaller(new SafeContentHandler(new ContentHandlerToXMLStreamWriter(
                    sWriter)));
            marshaller.setRootElement(part.getName().getLocalPart());
            if (mapping != null)
            {
                marshaller.setMapping(mapping);
            }
        }
View Full Code Here

            {
                final QName q = getInParameterName(service, op, method, j, false);
               
                if (isOutParam(method, j))
                {
                    MessagePartInfo part = outHeaders.getMessagePart(q);
                    if (part == null)
                        throw new XFireRuntimeException("Could not find header " + q + " in wsdl for operation " + op.getName());
                   
                    part.setTypeClass(paramClasses[j]);
                    part.setIndex(j);
                    part.setSchemaType(null);
                }

                if (isInParam(method, j))
                {
                    MessagePartInfo part = inHeaders.getMessagePart(q);
                    if (part == null)
                        throw new XFireRuntimeException("Could not find header " + q + " in wsdl for operation " + op.getName());
                   
                    part.setTypeClass(paramClasses[j]);
                    part.setIndex(j);
                    part.setSchemaType(null);
                }
            }
        }
    }
View Full Code Here

            if (!paramClasses[j].equals(MessageContext.class) &&
                    !isHeader(method, j) &&
                    isInParam(method, j))
            {
                final QName q = getInParameterName(endpoint, op, method, j, isDoc);
                MessagePartInfo part = inMsg.addMessagePart(q, paramClasses[j]);
                part.setIndex(j);
                part.setDocumentation(getDocumentationProvider().getParamters(op, j));
                part.setSchemaElement(isDoc || endpoint.getServiceInfo().isWrapped());
            }
        }

        String mep = getMEP(method);
        op.setMEP(mep);
        if (hasOutMessage(mep))
        {
            // Setup the output message
            MessageInfo outMsg = op.createMessage(createOutputMessageName(op));
            op.setOutputMessage(outMsg);

            final Class returnType = method.getReturnType();
            if (!returnType.isAssignableFrom(void.class) && !isHeader(method, -1))
            {
                final QName q = getOutParameterName(endpoint, op, method, -1, isDoc);
                MessagePartInfo part = outMsg.addMessagePart(q, method.getReturnType());
                part.setIndex(-1);
                part.setDocumentation(getDocumentationProvider().getResultDocumentation(op));
               
                part.setSchemaElement(isDoc || endpoint.getServiceInfo().isWrapped());
            }
           
            for (int j = 0; j < paramClasses.length; j++)
            {
                if (!paramClasses[j].equals(MessageContext.class) &&
                        !isHeader(method, j) &&
                        isOutParam(method, j))
                {
                    final QName q = getInParameterName(endpoint, op, method, j, isDoc);
                    MessagePartInfo part = outMsg.addMessagePart(q, paramClasses[j]);
                    part.setIndex(j);
                    part.setSchemaElement(isDoc || endpoint.getServiceInfo().isWrapped());
                }
            }
        }

        if (isCustomFaultsEnabled())
View Full Code Here

        {
            msgInfo = op.getOutputMessage();
        }
        Set namespaces = new HashSet();
        for(Iterator itr = msgInfo.getMessageParts().iterator(); itr.hasNext();){
          MessagePartInfo outParam = (MessagePartInfo) itr.next();
          String ns = getBoundNamespace(context, outParam);
          namespaces.add(ns);
        }
       
        for(Iterator iter = namespaces.iterator();iter.hasNext();){
          String ns = (String) iter.next();
          try {
        NamespaceHelper.getUniquePrefix(writer,ns, true);
      } catch (XMLStreamException e) {
         throw new XFireFault("Could not write to outgoing stream.", e, XFireFault.RECEIVER);
      }
        }
         
       
        for(Iterator itr = msgInfo.getMessageParts().iterator(); itr.hasNext();)
        {
            MessagePartInfo outParam = (MessagePartInfo) itr.next();

            try
            {
                Object value;
                if (client)
View Full Code Here

TOP

Related Classes of org.codehaus.xfire.service.MessagePartInfo

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.