Package org.objectweb.celtix.tools.generators.java2

Source Code of org.objectweb.celtix.tools.generators.java2.ServiceGenerator

package org.objectweb.celtix.tools.generators.java2;

import javax.wsdl.Binding;
import javax.wsdl.Definition;
import javax.wsdl.Port;
import javax.wsdl.Service;
import javax.wsdl.WSDLException;
import javax.wsdl.extensions.ExtensionRegistry;
import javax.wsdl.extensions.soap.SOAPAddress;
import javax.xml.namespace.QName;

import org.objectweb.celtix.tools.common.ToolException;
import org.objectweb.celtix.tools.common.WSDLConstants;
import org.objectweb.celtix.tools.common.model.WSDLModel;

public class ServiceGenerator {
    private static final String ADDRESS_URI = "http://localhost/changme";
    private WSDLModel wmodel;
    private Definition definition;
    private ExtensionRegistry extensionRegistry;
   
    public ServiceGenerator(WSDLModel model) {
        this.definition = model.getDefinition();
        this.wmodel = model;
        extensionRegistry = definition.getExtensionRegistry();
       
    }
   
    public void generate() {
        Service service = definition.createService();
        service.setQName(new QName(WSDLConstants.WSDL_PREFIX, wmodel.getServiceName()));
        Port port = definition.createPort();
        port.setName(wmodel.getPortName());
        Binding binding = definition.createBinding();
        String targetNameSpace = wmodel.getTargetNameSpace();
        binding.setQName(new QName(targetNameSpace, wmodel.getPortTypeName() + "Binding"));
        port.setBinding(binding);
        SOAPAddress soapAddress = null;
        try {
            soapAddress = (SOAPAddress)extensionRegistry
                .createExtension(Port.class, new QName(WSDLConstants.SOAP11_NAMESPACE, "address"));
            soapAddress.setLocationURI(ADDRESS_URI);
        } catch (WSDLException e) {
            throw new ToolException(e.getMessage(), e);
        }
        port.addExtensibilityElement(soapAddress);
        service.addPort(port);
        definition.addService(service);
    }
}
TOP

Related Classes of org.objectweb.celtix.tools.generators.java2.ServiceGenerator

TOP
Copyright © 2018 www.massapi.com. 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.