Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
   *
   * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   * Other names may be trademarks of their respective owners.
   *
   * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common
  * Development and Distribution License("CDDL") (collectively, the
  * "License"). You may not use this file except in compliance with the
  * License. You can obtain a copy of the License at
  * http://www.netbeans.org/cddl-gplv2.html
  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  * specific language governing permissions and limitations under the
  * License.  When distributing the software, include this License Header
  * Notice in each file and include the License file at
  * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
  * particular file as subject to the "Classpath" exception as provided
  * by Oracle in the GPL Version 2 section of the License file that
  * accompanied this code. If applicable, add the following below the
  * License Header, with the fields enclosed by brackets [] replaced by
  * your own identifying information:
  * "Portions Copyrighted [year] [name of copyright owner]"
  * 
  * Contributor(s):
  * 
  * The Original Software is NetBeans. The Initial Developer of the Original
  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
  * Microsystems, Inc. All Rights Reserved.
  * 
  * If you wish your version of this file to be governed by only the CDDL
  * or only the GPL Version 2, indicate your decision by adding
  * "[Contributor] elects to include this software in this distribution
  * under the [CDDL or GPL Version 2] license." If you do not indicate a
  * single choice of license, a recipient has the option to distribute
  * your version of this file under either the CDDL, the GPL Version 2 or
  * to extend the choice of license to its licensees as provided above.
  * However, if you add GPL Version 2 code and therefore, elected the GPL
  * Version 2 license, then the option applies only if the new code is
  * made subject to such option by the copyright holder.
  */
 package org.netbeans.modules.websvc.saas.codegen.java;
 
 import java.util.List;
 import java.util.Set;
Code generator for REST services wrapping WSDL-based web {10}.

Author(s):
ayubkhan
 
    public static final String QNAME = "javax.xml.namespace.QName";
    public static final String WS_BINDING_PROVIDER = "com.sun.xml.ws.developer.WSBindingProvider";
    public static final String HEADERS = "com.sun.xml.ws.api.message.Headers";
    public static final String SET_HEADER_PARAMS = "setHeaderParameters";
    public static final String VAR_NAMES_SERVICE = "service";
    public static final String VAR_NAMES_PORT = "port";
    public SoapClientPojoCodeGenerator() {
    }
    @Override
    public boolean canAccept(SaasMethod methodDocument doc) {
        if (SaasBean.canAccept(methodWsdlSaasMethod.classgetDropFileType()) &&
                Util.isJava(doc)) {
            try {
                WsdlSaasMethod wsm = (WsdlSaasMethodmethod;
                Project p = FileOwnerQuery.getOwner(NbEditorUtilities.getFileObject(doc));
                new SoapClientSaasBean(wsmp, JavaUtil.toJaxwsOperationInfos(wsmp));
                return true;
            } catch (Exception e) {
                Logger.getLogger(this.getClass().getName()).log(.null
                    NbBundle.getMessage(CodeSetupPanel.class"WARN_UnsupportedDropTarget")
                );
            }
        }
        return false;
    }
    @Override
    public void init(SaasMethod mDocument docthrows IOException {
        super.init(mdoc);
        WsdlSaasMethod wsm = (WsdlSaasMethodm;
        Project p = FileOwnerQuery.getOwner(NbEditorUtilities.getFileObject(doc));
        SaasBean bean = new SoapClientSaasBean(wsmp, JavaUtil.toJaxwsOperationInfos(wsmp));
        setBean(bean);
        clearVariablePatterns();
    }
    @Override
    public SoapClientSaasBean getBean() {
        return (SoapClientSaasBeansuper.getBean();
    }
    @Override
    protected void preGenerate() throws IOException {
        super.preGenerate();
        SoapClientOperationInfo[] operations = getBean().getOperationInfos();
        for (SoapClientOperationInfo info : operations) {
            if (info.isRPCEncoded()) {
                LibrariesHelper.addDefaultJaxRpcClientJars(getProject(), nullinfo.getMethod().getSaas());
            } else {
                LibrariesHelper.addDefaultJaxWsClientJars(getProject(), nullinfo.getMethod().getSaas());
            }
        }
    }
    @Override
    public Set<FileObjectgenerate() throws IOException {
        preGenerate();
        //addImportsToTargetFile();
        finishProgressReporting();
        return new HashSet<FileObject>(.);
    }

    
Insert the Saas client call
    protected void insertSaasServiceAccessCode(boolean isInBlockthrows IOException {
        try {
            String code = "";
            if (isInBlock) {
                code = getCustomMethodBody();
            } else {
                code = "\nprivate String call" + getBean().getName() + "Service() {\n";
                code += getCustomMethodBody() + "\n";
                code += "return " + getResultPattern() + ";\n";
                code += "}\n";
            }
            insert(codetrue);
        } catch (BadLocationException ex) {
            throw new IOException(ex.getMessage());
        }
    }
    @Override
    protected String getCustomMethodBody() throws IOException {
        String methodBody = "\n" +  + "try {\n";
        List<ParameterInfoparams = getBean().getQueryParameters();
        updateVariableNames(params);
        List<ParameterInforenamedParams = renameParameterNames(params);
        for (ParameterInfo param : renamedParams) {
            String name = param.getName();
            methodBody +=  + param.getType().getName() + " " + name + " = " +
                    resolveInitValue(param) + "\n";
        }
        SoapClientOperationInfo[] operations = getBean().getOperationInfos();
        for (SoapClientOperationInfo info : operations) {
            if (!info.isRPCEncoded()) {
                methodBody += getWSInvocationCode(info);
            } else {
                methodBody += getWSInvocationCodeForJaxrpc(info);
            }
        }
        methodBody +=  + "} catch (Exception ex) {\n";
        methodBody +=  + "ex.printStackTrace();\n";
        methodBody +=  + "}\n";
        return methodBody;
    }
    private static String varFromName(final String name) {
        if (name.length() > 0) {
            StringBuffer buf = new StringBuffer(name);
            // If the first character is uppercase, make it lowercase for the variable name,
            // otherwise, prefix an underscore.
            if (Character.isUpperCase(buf.charAt(0))) {
                buf.setCharAt(0, Character.toLowerCase(buf.charAt(0)));
            } else {
                buf.insert(0, '_');
            }
            return removeDots(buf).toString();
        } else {
            return "unknown"// NOI18N
        }
    }
    // replace dots in a class/var name
    private static StringBuffer removeDots(final StringBuffer name) {
        int dotIndex;
        while ((dotIndex = name.indexOf(".")) > -1) { //NOI18N
            name.deleteCharAt(dotIndex); //delete the dot
            name.setCharAt(dotIndex, Character.toUpperCase(name.charAt(dotIndex))); // make the letter after dot uppercase
        }
        return name;
    }
    // {0} = fully qualified service class name ( e.g. "org.netbeans.FooSeWebService")
    // {1} = service variable name ( e.g. "fooService")
    // {2} = fully qualified port name (as type, e.g. com.service.FooPort)
    // {3} = port varialbe name (e.g., "port")
    // {4} = port getter method (e.g., getFooPort)
    // {5} = operation name
    // {6} = argument array
    // {7} = result statement (return type and variable, e.g., MyClass myvar =
        String serviceClassName = info.getService().getJavaName();
        String serviceLookup = serviceClassName.substring(serviceClassName.lastIndexOf(".") + 1);
        String serviceName = info.getServiceName();
        if (serviceName == null || serviceName.length() == 0) {
            serviceName = "service";  //NOI18N
        }
        String serviceVarName = varFromName(serviceName);
        String servicePortClassName = info.getPort().getJavaName();
        String portVarName = varFromName(info.getPortName());
        String portGetterName = info.getPort().getPortGetter();
        String serviceOperationName = info.getOperation().getJavaMethod().getName();
    
        List<WSParameteroutArguments = info.getOutputParameters();
        updateVariableNamesForWS(outArguments);
        String responseType = "Object"//NOI18N
        String argumentInitializationPart = "";
        String argumentDeclarationPart = "";
        String resultStatement = "";
        String resultTypeName = "";
        String resultVariable = "";
        StringBuffer argumentBuffer2 = new StringBuffer("");
        try {
            StringBuffer argumentBuffer1 = new StringBuffer();
            for (int i = 0; i < outArguments.size(); i++) {
                String argumentTypeName = outArguments.get(i).getTypeName();
                String argumentName = findNewName(getVariableDecl(outArguments.get(i)), outArguments.get(i).getName());
                argumentBuffer1.append( + argumentTypeName + " " + argumentName +
                        " = " + resolveInitValue(argumentTypeName) + "\n"); //NOI18N
            }
            List<? extends WSParameterparameters = info.getOperation().getParameters();
            updateVariableNamesForWS(parameters);
            for (int i = 0; i < parameters.size(); i++) {
                String argument = findNewName(getVariableDecl(parameters.get(i)), parameters.get(i).getName());
                argumentBuffer2.append(i > 0 ? ", " + argument : argument); //NOI18N
            }
            argumentInitializationPart = (argumentBuffer1.length() > 0 ? "\t" +
                     + argumentBuffer1.toString() : "");
            resultTypeName = info.getOperation().getReturnTypeName();
            resultVariable = "result";  //NOI18N
            argumentDeclarationPart = argumentBuffer2.toString();
            if(!resultTypeName.equals("void")){  //NOI18N
                resultStatement = resultTypeName + " " + resultVariable + " =";  //NOI18N
            }
        } catch (Exception e) {
            ErrorManager.getDefault().notify(e);
        }
        Object[] args = new String[]{serviceClassNameserviceVarNameservicePortClassNameportVarName,
            portGetterNameserviceOperationNameargumentDeclarationPartserviceLookupresultStatement
        };
        String operationInvocation = MessageFormat.format(args);
        return operationInvocation;
    }

    
Add JAXWS client code for invoking the given operation at current position.
    protected String getWSInvocationCode(SoapClientOperationInfo infothrows IOException {
        //Collect java names for invocation code
        String serviceJavaName = info.getService().getJavaName();
        String portJavaName = info.getPort().getJavaName();
        String operationJavaName = info.getOperation().getJavaName();
        String portGetterMethod = info.getPort().getPortGetter();
        String pkgName = (((WsdlSaas)getBean().getSaas()).getWsdlData()).getJaxWsDescriptor().getPackageName();
        if(pkgName != null) {
            if(serviceJavaName.lastIndexOf(".") != -1)
                serviceJavaName = serviceJavaName.substring(serviceJavaName.lastIndexOf(".")+1);
            serviceJavaName = pkgName+"."+serviceJavaName;
            if(portJavaName.lastIndexOf(".") != -1)
                portJavaName = portJavaName.substring(portJavaName.lastIndexOf(".")+1);
            portJavaName = pkgName+"."+portJavaName;
        }
        String serviceFieldName = findNewName(serviceJavaName + " " + ); //NOI18N
        String returnTypeName = info.getOperation().getReturnTypeName();
        List<WSParameteroutArguments = info.getOutputParameters();
        updateVariableNamesForWS(outArguments);
        String responseType = "Object"//NOI18N
        String callbackHandlerName = "javax.xml.ws.AsyncHandler"//NOI18N
        String argumentInitializationPart = "";
        String argumentDeclarationPart = "";
        try {
            StringBuffer argumentBuffer1 = new StringBuffer();
            StringBuffer argumentBuffer2 = new StringBuffer();
            for (int i = 0; i < outArguments.size(); i++) {
                String argumentTypeName = outArguments.get(i).getTypeName();
                if (argumentTypeName.startsWith("javax.xml.ws.AsyncHandler")) {
                    //NOI18N
                    responseType = resolveResponseType(argumentTypeName);
                    callbackHandlerName = argumentTypeName;
                }
                String argumentName = findNewName(getVariableDecl(outArguments.get(i)), outArguments.get(i).getName());
                argumentBuffer1.append( + argumentTypeName + " " + argumentName +
                        " = " + resolveInitValue(argumentTypeName) + "\n"); //NOI18N
            }
            List<? extends WSParameterparameters = info.getOperation().getParameters();
            updateVariableNamesForWS(parameters);
            for (int i = 0; i < parameters.size(); i++) {
                String argument = findNewName(getVariableDecl(parameters.get(i)), parameters.get(i).getName());
                argumentBuffer2.append(i > 0 ? ", " + argument : argument); //NOI18N
            }
            argumentInitializationPart = (argumentBuffer1.length() > 0 ? "\t" +
                     + argumentBuffer1.toString() : "");
            argumentDeclarationPart = argumentBuffer2.toString();
        } catch (NullPointerException npe) {
            // !PW notify failure to extract service information.
            npe.printStackTrace();
            String message = NbBundle.getMessage(SoapClientPojoCodeGenerator.class,
                    "ERR_FailedUnexpectedWebServiceDescriptionPattern"); // NOI18N
            NotifyDescriptor desc = new NotifyDescriptor.Message(message,
                    ..);
            DialogDisplayer.getDefault().notify(desc);
        }
        final boolean[] insertServiceDef = {true};
        final String[] printerName = {"System.out"}; // NOI18N
        final String[] argumentInitPart = {argumentInitializationPart};
        final String[] argumentDeclPart = {argumentDeclarationPart};
        final String[] serviceFName = {serviceFieldName};
        final boolean[] generateWsRefInjection = {false};
        final String serviceJName = serviceJavaName;
            private Kind VARIABLE;
            public void run(CompilationController controllerthrows IOException {
                controller.toPhase(.);
                CompilationUnitTree cut = controller.getCompilationUnit();
                ClassTree classTree = JavaSourceHelper.findPublicTopLevelClass(controller);
                generateWsRefInjection[0] = JavaSourceHelper.isInjectionTarget(controller);
                insertServiceDef[0] = !generateWsRefInjection[0];
                // compute the service field name
                if (generateWsRefInjection[0]) {
                    Set<StringserviceFieldNames = new HashSet<String>();
                    boolean injectionExists = false;
                    int memberOrder = 0;
                    for (Tree member : classTree.getMembers()) {
                        // for the first inner class in top level
                        ++memberOrder;
                        if ( == member.getKind()) {
                            // get variable type
                            VariableTree var = (VariableTreemember;
                            Tree typeTree = var.getType();
                            TreePath typeTreePath = controller.getTrees().getPath(cuttypeTree);
                            TypeElement typeEl = JavaSourceHelper.getTypeElement(controllertypeTreePath);
                            if (typeEl != null) {
                                String variableType = typeEl.getQualifiedName().toString();
                                if (serviceJName.equals(variableType)) {
                                    serviceFName[0] = var.getName().toString();
                                    generateWsRefInjection[0] = false;
                                    injectionExists = true;
                                    break;
                                }
                            }
                            serviceFieldNames.add(var.getName().toString());
                        }
                    }
                    if (!injectionExists) {
                        serviceFName[0] = findProperServiceFieldName(serviceFieldNames);
                    }
                }
            }
            public void cancel() {
            }
        };
        String invocationBody = getJavaInvocationBody(info.getOperation(),
                insertServiceDef[0], serviceJavaNameportJavaName,
                portGetterMethodargumentInitPart[0], returnTypeName,
                operationJavaNameargumentDeclPart[0], serviceFName[0],
                printerName[0], responseType);
        return invocationBody;
    }
    public static final String HINT_INIT_ARGUMENTS = " // TODO initialize WS operation arguments here\n"//NOI18N
    // {0} = service java name (as variable, e.g. "AddNumbersService")
    // {1} = port java name (e.g. "AddNumbersPort")
    // {2} = port getter method (e.g. "getAddNumbersPort")
    // {3} = argument initialization part (e.g. "int x=0; int y=0;")
    // {4} = java result type (e.g. "int")
    // {5} = operation java method name (e.g. "add")
    // {6} = java method arguments (e.g. "int x, int y")
    // {7} = service field name
    private static final String JAVA_SERVICE_DEF = "   {0} {7} = new {0}();\n"//NOI18N
    private static final String JAVA_PORT_DEF = "   {1} {11} = {7}.{2}();\n"//NOI18N
    private static final String JAVA_RESULT = "   {3}" + "   // TODO process result here\n" + "   {4} {9} = {11}.{5}({6});\n"//NOI18N
    private static final String JAVA_VOID = "   {3}" + "   {11}.{5}({6});\n"//NOI18N
    private static final String JAVA_OUT = "   {8}.println(\"Result = \"+{9});\n"//NOI18N
    // {0} = service java name (as variable, e.g. "AddNumbersService")
    // {1} = port java name (e.g. "AddNumbersPort")
    // {2} = port getter method (e.g. "getAddNumbersPort")
    // {3} = argument initialization part (e.g. "int x=0; int y=0;")
    // {4} = java result type (e.g. "int")
    // {5} = operation java method name (e.g. "add")
    // {6} = java method arguments (e.g. "int x, int y")
    private static final String JAVA_STATIC_STUB_ASYNC_POLLING = "\ntry '{' // Call Web Service Operation(async. polling)\n" + "   {0} {10} = new {0}();\n" + "   {1} {11} = {10}.{2}();\n" + "   {3}" + "   // TODO process asynchronous response here\n" + "   {4} {9} = {11}.{5}({6});\n" + "   while(!{9}.isDone()) '{'\n" + "       // do something\n" + "       Thread.sleep(100);\n" + "   '}'\n" + "   System.out.println(\"Result = \"+{9}.get());\n" + "'}' catch (Exception ex) '{'\n" + "   // TODO handle custom exceptions here\n" + "'}'\n"//NOI18N
    // {0} = service java name (as variable, e.g. "AddNumbersService")
    // {1} = port java name (e.g. "AddNumbersPort")
    // {2} = port getter method (e.g. "getAddNumbersPort")
    // {3} = argument initialization part (e.g. "int x=0; int y=0;")
    // {4} = java result type (e.g. "int")
    // {5} = operation java method name (e.g. "add")
    // {6} = java method arguments (e.g. "int x, int y")
    // {7} = response type (e.g. FooResponse)
    private static final String JAVA_STATIC_STUB_ASYNC_CALLBACK = "\ntry '{' // Call Web Service Operation(async. callback)\n" + "   {0} {10} = new {0}();\n" + "   {1} {11} = {10}.{2}();\n" + "   {3}" + "       public void handleResponse(javax.xml.ws.Response<{7}> {9}Resp) '{'\n" + "           try '{'\n" + "               // TODO process asynchronous response here\n" + "               System.out.println(\"Result = \"+ {9}Resp.get());\n" + "           '}' catch(Exception ex) '{'\n" + "               // TODO handle exception\n" + "           '}'\n" + "       '}'\n" + "   '}';\n" + "   {4} {9} = {11}.{5}({6});\n" + "   while(!{9}.isDone()) '{'\n" + "       // do something\n" + "       Thread.sleep(100);\n" + "   '}'\n" + "'}' catch (Exception ex) '{'\n" + "   // TODO handle custom exceptions here\n" + "'}'\n"//NOI18N
    // {0} = fully qualified service class name ( e.g. "org.netbeans.FooSeWebService")
    // {1} = service variable name ( e.g. "fooService")
    // {2} = fully qualified port name (as type, e.g. com.service.FooPort)
    // {3} = port varialbe name (e.g., "port")
    // {4} = port getter method (e.g., getFooPort)
    // {5} = operation name
    // {6} = argument array
    // {7} = lookup object
    // {8} = result statement (return type and variable, e.g., MyClass myvar =
    private static final String INVOKE_JAXRPC_BODY =
            //"\t\tjavax.naming.InitialContext ic = new javax.naming.InitialContext();\n" +
            //"\t\t{0} {1} = ({0}) ic.lookup(\"java:comp/env/service/{7}\");\n" +
            "\t\t{0} {1} = new {0}_Impl();\n" +
            "\t\t{2} {3} = {1}.{4}();\n" +
            "\t\t{8} {3}.{5}({6});\n";

    
Determines the initialization value of a variable of type "type"

Parameters:
type Type of the variable
targetFile FileObject containing the class that declares the type
    protected static String resolveInitValue(String type) {
        if (type.startsWith("javax.xml.ws.Holder")) {
            //NOI18N
            return "new " + type + "();";
        }
        if ("int".equals(type) || "long".equals(type) || "short".equals(type) || "byte".equals(type)) {
            //NOI18N
            return "0;"//NOI18N
        }
        if ("boolean".equals(type)) {
            //NOI18N
            return "false;"//NOI18N
        }
        if ("float".equals(type) || "double".equals(type)) {
            //NOI18N
            return "0.0;"//NOI18N
        }
        if ("java.lang.String".equals(type)) {
            //NOI18N
            return "\"\";"//NOI18N
        }
        if (type.endsWith("CallbackHandler")) {
            //NOI18N
            return "new " + type + "();"//NOI18N
        }
        if (type.startsWith("javax.xml.ws.AsyncHandler")) {
            //NOI18N
            return "new " + type + "() {"//NOI18N
        }
        return "null;"//NOI18N
    }

    
Determines the initialization value of a variable of type "type"

Parameters:
type Type of the variable
targetFile FileObject containing the class that declares the type
    protected static String resolveInitValue(ParameterInfo p) {
        String type = p.getTypeName();
        Object defaultVal = p.getDefaultValue();
        if (type.startsWith("javax.xml.ws.Holder")) {
            //NOI18N
            return "new " + type + "();";
        }
        if ("int".equals(type) || "long".equals(type) || "short".equals(type) || "byte".equals(type) ||
                "java.lang.Integer".equals(type) || "java.lang.Long".equals(type) ||
                "java.lang.Short".equals(type) || "java.lang.Byte".equals(type)) {
            //NOI18N
            try {
                int val = Integer.parseInt((StringdefaultVal);
                return String.valueOf(val) + ";";
            } catch (Exception ex) {
            }
            return "0;"//NOI18N
        }
        if ("boolean".equals(type) || "java.lang.Boolean".equals(type)) {
            //NOI18N
            return defaultVal.toString() + ";";
        }
        if ("float".equals(type) || "double".equals(type) ||
                "java.lang.Float".equals(type) || "java.lang.Double".equals(type)) {
            //NOI18N
            try {
                double val = Double.parseDouble((StringdefaultVal);
                return String.valueOf(val) + ";";
            } catch (Exception ex) {
            }
            return "0.0;"//NOI18N
        }
        if ("java.lang.String".equals(type)) {
            //NOI18N
            if (defaultVal != null && defaultVal instanceof String) {
                return "\"" + (StringdefaultVal + "\";";
            }
            return "\"\";"//NOI18N
        }
        if (type.endsWith("CallbackHandler")) {
            //NOI18N
            return "new " + type + "();"//NOI18N
        }
        if (type.startsWith("javax.xml.ws.AsyncHandler")) {
            //NOI18N
            return "new " + type + "() {"//NOI18N
        }
        return "null;"//NOI18N
    }
    protected static String resolveResponseType(String argumentType) {
        int start = argumentType.indexOf("<");
        int end = argumentType.indexOf(">");
        if (start > 0 && end > 0 && start < end) {
            return argumentType.substring(start + 1, end);
        } else {
            return "javax.xml.ws.Response"//NOI18N
        }
    }
    public static final String SET_HEADER_PARAMS_CALL =  + "(port); \n";
    protected String getJavaInvocationBody(WSOperation operation,
            boolean insertServiceDefString serviceJavaNameString portJavaName,
            String portGetterMethodString argumentInitializationPart,
            String returnTypeNameString operationJavaNameString argumentDeclarationPart,
            String serviceFieldNameString printerNameString responseType) {
        String invocationBody = ;
        String setHeaderParams = getBean().getHeaderParameters().size() > 0 ?  : "";
        Object[] args = new Object[]{
            serviceJavaNameportJavaNameportGetterMethod,
            argumentInitializationPartreturnTypeNameoperationJavaName,
            argumentDeclarationPartserviceFieldNameprinterName,
            getResultPattern(), findNewName(serviceJavaName + " " + ),
            findNewName(portJavaName + " " + )
        };
        switch (operation.getOperationType()) {
            case .: {
                if ("void".equals(returnTypeName)) {
                    //NOI18N
                    String body = (insertServiceDef ?  : "") + setHeaderParams +  + ;
                    invocationBody += MessageFormat.format(bodyargs);
                } else {
                    String body = (insertServiceDef ?  : "") +  + setHeaderParams +  + ;
                    invocationBody += MessageFormat.format(bodyargs);
                }
                break;
            }
            case .: {
                invocationBody += MessageFormat.format(args);
                break;
            }
            case .: {
                args[7] = responseType;
                invocationBody += MessageFormat.format(args);
                break;
            }
        }
        return invocationBody;
    }
    protected static String findProperServiceFieldName(Set serviceFieldNames) {
        String name = "service";
        int i = 0;
        while (serviceFieldNames.contains(name)) {
            name = "service_" + String.valueOf(++i);
        }
        return name//NOI18N
    }
    private ClassTree addSetHeaderParamsMethod(WorkingCopy copyClassTree treeString portJavaType) {
        Modifier[] modifiers = .;
        String[] annotations = new String[0];
        Object[] annotationAttrs = new Object[0];
        Object returnType = .;
        String bodyText = "{ WSBindingProvider bp = (WSBindingProvider)port;";
        bodyText += "bp.setOutboundHeaders(";
        boolean first = true;
        for (ParameterInfo pinfo : getBean().getHeaderParameters()) {
            if (pinfo.getDefaultValue() == null) {
                continue;
            }
            if (first) {
                first = false;
            } else {
                bodyText += ", \n ";
            }
            String namespaceUri = pinfo.getQName().getNamespaceURI();
            bodyText += "Headers.create(new QName(";
            if (namespaceUri != null) {
                bodyText += "\"" + namespaceUri + "\",";
            }
            bodyText += "\"" + pinfo.getName() + "\"), \"" + pinfo.getDefaultValue() + "\")";
        }
        bodyText += ");";
        String[] parameters = new String[]{findNewName(portJavaType + " " + )};
        Object[] paramTypes = new Object[]{portJavaType};
        String[] paramAnnotations = new String[0];
        Object[] paramAnnotationAttrs = new String[0];
        String comment = null;
        return JavaSourceHelper.addMethod(copytree,
                modifiersannotationsannotationAttrs,
                returnTypeparametersparamTypes//NOI18N
                paramAnnotationsparamAnnotationAttrs,
                bodyTextcomment);      //NOI18N
    }
New to GrepCode? Check out our FAQ X