src/share/jaxws_classes/com/sun/tools/internal/xjc/outline/Outline.java

Tue, 06 Mar 2012 16:09:35 -0800

author
ohair
date
Tue, 06 Mar 2012 16:09:35 -0800
changeset 286
f50545b5e2f1
parent 0
373ffda63c9a
permissions
-rw-r--r--

7150322: Stop using drop source bundles in jaxws
Reviewed-by: darcy, ohrstrom

     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.outline;
    28 import java.util.Collection;
    30 import com.sun.codemodel.internal.JClass;
    31 import com.sun.codemodel.internal.JClassContainer;
    32 import com.sun.codemodel.internal.JCodeModel;
    33 import com.sun.codemodel.internal.JPackage;
    34 import com.sun.codemodel.internal.JType;
    35 import com.sun.tools.internal.xjc.ErrorReceiver;
    36 import com.sun.tools.internal.xjc.model.CClassInfo;
    37 import com.sun.tools.internal.xjc.model.CClassInfoParent;
    38 import com.sun.tools.internal.xjc.model.CElementInfo;
    39 import com.sun.tools.internal.xjc.model.CEnumLeafInfo;
    40 import com.sun.tools.internal.xjc.model.CPropertyInfo;
    41 import com.sun.tools.internal.xjc.model.CTypeRef;
    42 import com.sun.tools.internal.xjc.model.Model;
    43 import com.sun.tools.internal.xjc.util.CodeModelClassFactory;
    45 /**
    46  * Root of the outline. Captures which code is generated for which model component.
    47  *
    48  * <p>
    49  * This object also provides access to varioues utilities, such as
    50  * error reporting etc, for the convenience of code that builds the outline.
    51  *
    52  * @author Kohsuke Kawaguchi
    53  */
    54 public interface Outline
    55 {
    56     /**
    57      * This outline is for this model.
    58      */
    59     Model getModel();
    61     /**
    62      * Short for {@code getModel().codeModel}.
    63      */
    64     JCodeModel getCodeModel();
    66     /** Gets the object that wraps the generated field for a given {@link CPropertyInfo}. */
    67     FieldOutline getField( CPropertyInfo fu );
    69     /**
    70      * Gets per-package context information.
    71      *
    72      * This method works for every visible package
    73      * (those packages which are supposed to be used by client applications.)
    74      *
    75      * @return
    76      *      If this grammar doesn't produce anything in the specified
    77      *      package, return null.
    78      */
    79     PackageOutline getPackageContext( JPackage _Package );
    81     /**
    82      * Returns all the {@link ClassOutline}s known to this object.
    83      */
    84     Collection<? extends ClassOutline> getClasses();
    86     /**
    87      * Obtains per-class context information.
    88      */
    89     ClassOutline getClazz( CClassInfo clazz );
    91     /**
    92      * If the {@link CElementInfo} generates a class,
    93      * returns such a class. Otherwise return null.
    94      */
    95     ElementOutline getElement(CElementInfo ei);
    97     EnumOutline getEnum(CEnumLeafInfo eli);
    99     /**
   100      * Gets all the {@link EnumOutline}s.
   101      */
   102     Collection<EnumOutline> getEnums();
   104     /** Gets all package-wise contexts at once. */
   105     Iterable<? extends PackageOutline> getAllPackageContexts();
   107     /**
   108      * Gets a reference to
   109      * <code>new CodeModelClassFactory(getErrorHandler())</code>.
   110      */
   111     CodeModelClassFactory getClassFactory();
   113     /**
   114      * Any error during the back-end proccessing should be
   115      * sent to this object.
   116      */
   117     ErrorReceiver getErrorReceiver();
   119     JClassContainer getContainer(CClassInfoParent parent, Aspect aspect );
   121     /**
   122      * Resolves a type reference to the actual (possibly generated) type.
   123      *
   124      * Short for {@code resolve(ref.getType(),aspect)}.
   125      */
   126     JType resolve(CTypeRef ref,Aspect aspect);
   128     /**
   129      * Copies the specified class into the user's package and returns
   130      * a reference to it.
   131      */
   132     JClass addRuntime(Class clazz);
   133 }

mercurial