src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BIClass.java

Tue, 09 Apr 2013 14:51:13 +0100

author
alanb
date
Tue, 09 Apr 2013 14:51:13 +0100
changeset 368
0989ad8c0860
parent 0
373ffda63c9a
permissions
-rw-r--r--

8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com

     1 /*
     2  * Copyright (c) 1997, 2011, 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.xjc.reader.xmlschema.bindinfo;
    28 import javax.xml.bind.annotation.XmlAttribute;
    29 import javax.xml.bind.annotation.XmlElement;
    30 import javax.xml.bind.annotation.XmlRootElement;
    31 import javax.xml.namespace.QName;
    33 import com.sun.tools.internal.xjc.reader.Const;
    34 import com.sun.xml.internal.bind.api.impl.NameConverter;
    35 import com.sun.istack.internal.Nullable;
    37 /**
    38  * Class declaration.
    39  *
    40  * This customization turns arbitrary schema component into a Java
    41  * content interface.
    42  *
    43  * <p>
    44  * This customization is acknowledged by the ClassSelector.
    45  *
    46  * @author
    47  *     Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
    48  */
    49 @XmlRootElement(name="class")
    50 public final class BIClass extends AbstractDeclarationImpl {
    51     protected BIClass() {
    52     }
    54     @XmlAttribute(name="name")
    55     private String className;
    57     /**
    58      * Gets the specified class name, or null if not specified.
    59      * (Not a fully qualified name.)
    60      *
    61      * @return
    62      *      Returns a class name. The caller should <em>NOT</em>
    63      *      apply XML-to-Java name conversion to the name
    64      *      returned from this method.
    65      */
    66     public @Nullable String getClassName() {
    67         if( className==null )   return null;
    69         BIGlobalBinding gb = getBuilder().getGlobalBinding();
    70         NameConverter nc = getBuilder().model.getNameConverter();
    72         if(gb.isJavaNamingConventionEnabled()) return nc.toClassName(className);
    73         else
    74             // don't change it
    75             return className;
    76     }
    78     @XmlAttribute(name="implClass")
    79     private String userSpecifiedImplClass;
    81     /**
    82      * Gets the fully qualified name of the
    83      * user-specified implementation class, if any.
    84      * Or null.
    85      */
    86     public String getUserSpecifiedImplClass() {
    87         return userSpecifiedImplClass;
    88     }
    90     @XmlAttribute(name="ref")
    91     private String ref;
    93     @XmlAttribute(name="recursive", namespace=Const.XJC_EXTENSION_URI)
    94     private String recursive;
    96     /**
    97      * Reference to the existing class, or null.
    98      * Fully qualified name.
    99      *
   100      * <p>
   101      * Caller needs to perform error check on this.
   102      */
   103     public String getExistingClassRef() {
   104         return ref;
   105     }
   107     public String getRecursive() {
   108         return recursive;
   109     }
   111     @XmlElement
   112     private String javadoc;
   113     /**
   114      * Gets the javadoc comment specified in the customization.
   115      * Can be null if none is specified.
   116      */
   117     public String getJavadoc() { return javadoc; }
   119     public QName getName() { return NAME; }
   121     public void setParent(BindInfo p) {
   122         super.setParent(p);
   123         // if this specifies a reference to external class,
   124         // then it's OK even if noone actually refers this class.
   125         if(ref!=null)
   126             markAsAcknowledged();
   127     }
   129     /** Name of this declaration. */
   130     public static final QName NAME = new QName( Const.JAXB_NSURI, "class" );
   131 }

mercurial