src/share/jaxws_classes/com/sun/tools/internal/ws/processor/generator/Names.java

Thu, 31 Aug 2017 15:18:52 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:18:52 +0800
changeset 637
9c07ef4934dd
parent 368
0989ad8c0860
parent 0
373ffda63c9a
permissions
-rw-r--r--

merge

     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package com.sun.tools.internal.ws.processor.generator;
    28 import com.sun.istack.internal.NotNull;
    29 import com.sun.tools.internal.ws.processor.model.Fault;
    30 import com.sun.tools.internal.ws.processor.model.ModelProperties;
    31 import com.sun.tools.internal.ws.processor.model.Port;
    32 import com.sun.tools.internal.ws.processor.model.java.JavaInterface;
    33 import com.sun.tools.internal.ws.processor.model.java.JavaStructureMember;
    34 import com.sun.tools.internal.ws.processor.modeler.ModelerConstants;
    35 import com.sun.tools.internal.ws.util.ClassNameInfo;
    36 import com.sun.xml.internal.ws.util.StringUtils;
    38 import javax.xml.namespace.QName;
    39 import java.util.HashMap;
    40 import java.util.Map;
    42 /**
    43  * Names provides utility methods used by other wscompile classes
    44  * for dealing with identifiers.
    45  *
    46  * @author WS Development Team
    47  */
    48 public final class Names {
    50     private Names() {
    51     }
    53     public static String getPortName(Port port) {
    54         String javaPortName =
    55             (String) port.getProperty(ModelProperties.PROPERTY_JAVA_PORT_NAME);
    56         if (javaPortName != null) {
    57             return javaPortName;
    58         } else {
    59             QName portName =
    60                 (QName) port.getProperty(
    61                     ModelProperties.PROPERTY_WSDL_PORT_NAME);
    62             if (portName != null) {
    63                 return portName.getLocalPart();
    64             } else {
    65                 String name = stripQualifier(port.getJavaInterface().getName());
    66                 return ClassNameInfo.replaceInnerClassSym(name);
    67             }
    68         }
    69     }
    72     public static String stripQualifier(String name) {
    73         return ClassNameInfo.getName(name);
    74     }
    76     public static String getPackageName(String className) {
    77         String packageName = ClassNameInfo.getQualifier(className);
    78         return packageName != null ? packageName : "";
    79     }
    82     public static String customJavaTypeClassName(JavaInterface intf) {
    83         return intf.getName();
    84     }
    86     public static String customExceptionClassName(Fault fault) {
    87         return fault.getJavaException().getName();
    88     }
    90     public static String getExceptionClassMemberName(){
    91         return GeneratorConstants.FAULT_CLASS_MEMBER_NAME.getValue();
    92     }
    94     public static boolean isJavaReservedWord(String name) {
    95         return RESERVED_WORDS.get(name) != null;
    96     }
    98     /**
    99      * See if its a java keyword name, if so then mangle the name
   100      */
   101     public static @NotNull String getJavaReserverVarialbeName(@NotNull String name){
   102         return (RESERVED_WORDS.get(name) == null) ? name : RESERVED_WORDS.get(name);
   103     }
   105     /* here we check on wether return values datatype is
   106        boolean. If its boolean, instead of a get method
   107        its set a is<MethodName> to comply with JavaBeans
   108        Pattern spec */
   109     public static String getJavaMemberReadMethod(JavaStructureMember member) {
   110         String return_value;
   111         if (member.getType().getRealName().equals(ModelerConstants.BOOLEAN_CLASSNAME.getValue())) {
   112             return_value = GeneratorConstants.IS.getValue() + StringUtils.capitalize(member.getName());
   113         } else {
   114             return_value = GeneratorConstants.GET.getValue() + StringUtils.capitalize(member.getName());
   115         }
   116         return (return_value);
   117     }
   119     public static String getResponseName(String messageName) {
   120         return messageName + GeneratorConstants.RESPONSE.getValue();
   121     }
   123     private static final Map<String, String> RESERVED_WORDS = new HashMap<String, String>(53);
   125     static {
   126         RESERVED_WORDS.put("abstract", "_abstract");
   127         RESERVED_WORDS.put("assert", "_assert");
   128         RESERVED_WORDS.put("boolean", "_boolean");
   129         RESERVED_WORDS.put("break", "_break");
   130         RESERVED_WORDS.put("byte", "_byte");
   131         RESERVED_WORDS.put("case", "_case");
   132         RESERVED_WORDS.put("catch", "_catch");
   133         RESERVED_WORDS.put("char", "_char");
   134         RESERVED_WORDS.put("class", "_class");
   135         RESERVED_WORDS.put("const", "_const");
   136         RESERVED_WORDS.put("continue", "_continue");
   137         RESERVED_WORDS.put("default", "_default");
   138         RESERVED_WORDS.put("do", "_do");
   139         RESERVED_WORDS.put("double", "_double");
   140         RESERVED_WORDS.put("else", "_else");
   141         RESERVED_WORDS.put("extends", "_extends");
   142         RESERVED_WORDS.put("false", "_false");
   143         RESERVED_WORDS.put("final", "_final");
   144         RESERVED_WORDS.put("finally", "_finally");
   145         RESERVED_WORDS.put("float", "_float");
   146         RESERVED_WORDS.put("for", "_for");
   147         RESERVED_WORDS.put("goto", "_goto");
   148         RESERVED_WORDS.put("if", "_if");
   149         RESERVED_WORDS.put("implements", "_implements");
   150         RESERVED_WORDS.put("import", "_import");
   151         RESERVED_WORDS.put("instanceof", "_instanceof");
   152         RESERVED_WORDS.put("int", "_int");
   153         RESERVED_WORDS.put("interface", "_interface");
   154         RESERVED_WORDS.put("long", "_long");
   155         RESERVED_WORDS.put("native", "_native");
   156         RESERVED_WORDS.put("new", "_new");
   157         RESERVED_WORDS.put("null", "_null");
   158         RESERVED_WORDS.put("package", "_package");
   159         RESERVED_WORDS.put("private", "_private");
   160         RESERVED_WORDS.put("protected", "_protected");
   161         RESERVED_WORDS.put("public", "_public");
   162         RESERVED_WORDS.put("return", "_return");
   163         RESERVED_WORDS.put("short", "_short");
   164         RESERVED_WORDS.put("static", "_static");
   165         RESERVED_WORDS.put("strictfp", "_strictfp");
   166         RESERVED_WORDS.put("super", "_super");
   167         RESERVED_WORDS.put("switch", "_switch");
   168         RESERVED_WORDS.put("synchronized", "_synchronized");
   169         RESERVED_WORDS.put("this", "_this");
   170         RESERVED_WORDS.put("throw", "_throw");
   171         RESERVED_WORDS.put("throws", "_throws");
   172         RESERVED_WORDS.put("transient", "_transient");
   173         RESERVED_WORDS.put("true", "_true");
   174         RESERVED_WORDS.put("try", "_try");
   175         RESERVED_WORDS.put("void", "_void");
   176         RESERVED_WORDS.put("volatile", "_volatile");
   177         RESERVED_WORDS.put("while", "_while");
   178         RESERVED_WORDS.put("enum", "_enum");
   179     }
   180 }

mercurial