corba/src/share/classes/com/sun/tools/corba/se/idl/Factories.java
author ohair
Tue, 25 May 2010 15:52:11 -0700
changeset 5555 b2b5ed3f0d0d
parent 4 02bb8761fcce
permissions -rw-r--r--
6943119: Rebrand source copyright notices Reviewed-by: darcy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     1
/*
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 4
diff changeset
     2
 * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
02bb8761fcce Initial load
duke
parents:
diff changeset
     4
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
02bb8761fcce Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 4
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 4
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
    10
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
02bb8761fcce Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
02bb8761fcce Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
02bb8761fcce Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
02bb8761fcce Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
02bb8761fcce Initial load
duke
parents:
diff changeset
    16
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
02bb8761fcce Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
02bb8761fcce Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
02bb8761fcce Initial load
duke
parents:
diff changeset
    20
 *
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 4
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 4
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 4
diff changeset
    23
 * questions.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
    24
 */
02bb8761fcce Initial load
duke
parents:
diff changeset
    25
/*
02bb8761fcce Initial load
duke
parents:
diff changeset
    26
 * COMPONENT_NAME: idl.parser
02bb8761fcce Initial load
duke
parents:
diff changeset
    27
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    28
 * ORIGINS: 27
02bb8761fcce Initial load
duke
parents:
diff changeset
    29
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    30
 * Licensed Materials - Property of IBM
02bb8761fcce Initial load
duke
parents:
diff changeset
    31
 * 5639-D57 (C) COPYRIGHT International Business Machines Corp. 1997, 1999
02bb8761fcce Initial load
duke
parents:
diff changeset
    32
 * RMI-IIOP v1.0
02bb8761fcce Initial load
duke
parents:
diff changeset
    33
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    34
 */
02bb8761fcce Initial load
duke
parents:
diff changeset
    35
02bb8761fcce Initial load
duke
parents:
diff changeset
    36
package com.sun.tools.corba.se.idl;
02bb8761fcce Initial load
duke
parents:
diff changeset
    37
02bb8761fcce Initial load
duke
parents:
diff changeset
    38
// NOTES:
02bb8761fcce Initial load
duke
parents:
diff changeset
    39
02bb8761fcce Initial load
duke
parents:
diff changeset
    40
/**
02bb8761fcce Initial load
duke
parents:
diff changeset
    41
 * If the framework is being extended, this class must be extended.
02bb8761fcce Initial load
duke
parents:
diff changeset
    42
 * At very least, the genFactory method must be overridden to return
02bb8761fcce Initial load
duke
parents:
diff changeset
    43
 * the code generator extensions.  The remaining methods may be overridden
02bb8761fcce Initial load
duke
parents:
diff changeset
    44
 * if necessary:
02bb8761fcce Initial load
duke
parents:
diff changeset
    45
 * <dl>
02bb8761fcce Initial load
duke
parents:
diff changeset
    46
 * <dt>symtabFactory
02bb8761fcce Initial load
duke
parents:
diff changeset
    47
 * <dd>If you wish to extend the symbol table entries, this method must return the factory which constructs those extensions.  If you only want to extend a few of the symbol table entries, it may be useful to extend com.sun.tools.corba.se.idl.DefaultSymtabFactory and only override the pertinent methods.
02bb8761fcce Initial load
duke
parents:
diff changeset
    48
 * <dt>exprFactory
02bb8761fcce Initial load
duke
parents:
diff changeset
    49
 * <dd>If you wish to extend the expression classes, this method must return the factory which constructs those extensions.  If you only want to extend a few of the expression classes, it may be useful to extend com.sun.tools.corba.se.idl.constExpr.DefaultSymtabFactory and only override the pertinent methods.
02bb8761fcce Initial load
duke
parents:
diff changeset
    50
 * <dt>arguments
02bb8761fcce Initial load
duke
parents:
diff changeset
    51
 * <dd>If you wish to add additional arguments to the base set of arguments, extend com.sun.tools.corba.se.idl.Arguments and override this method to return that class.
02bb8761fcce Initial load
duke
parents:
diff changeset
    52
 * <dt>languageKeywords
02bb8761fcce Initial load
duke
parents:
diff changeset
    53
 * <dd>If the language you are generating code in has keywords other than IDL keywords, these keywords should be returned by this method.  The framework will prepend any IDL identifiers it encounters which are in this list with an underscore (`_') to avoid compilation errors.  For instance, `catch' is a Java keyword.  If the generators are emitting Java code for the following IDL, emitting `catch' as is will cause compile errors, so it is changed to `_catch':
02bb8761fcce Initial load
duke
parents:
diff changeset
    54
 * <br>
02bb8761fcce Initial load
duke
parents:
diff changeset
    55
 * IDL:
02bb8761fcce Initial load
duke
parents:
diff changeset
    56
 * <br>
02bb8761fcce Initial load
duke
parents:
diff changeset
    57
 * const long catch = 22;
02bb8761fcce Initial load
duke
parents:
diff changeset
    58
 * <br>
02bb8761fcce Initial load
duke
parents:
diff changeset
    59
 * Possible generated code:
02bb8761fcce Initial load
duke
parents:
diff changeset
    60
 * <br>
02bb8761fcce Initial load
duke
parents:
diff changeset
    61
 * public static final int _catch = 22;
02bb8761fcce Initial load
duke
parents:
diff changeset
    62
 * </dl>
02bb8761fcce Initial load
duke
parents:
diff changeset
    63
 **/
02bb8761fcce Initial load
duke
parents:
diff changeset
    64
public class Factories
02bb8761fcce Initial load
duke
parents:
diff changeset
    65
{
02bb8761fcce Initial load
duke
parents:
diff changeset
    66
  /** Return the implementation of the GenFactory interface.  If this
02bb8761fcce Initial load
duke
parents:
diff changeset
    67
      returns null, then the compiler cannot generate anything. */
02bb8761fcce Initial load
duke
parents:
diff changeset
    68
  public GenFactory genFactory ()
02bb8761fcce Initial load
duke
parents:
diff changeset
    69
  {
02bb8761fcce Initial load
duke
parents:
diff changeset
    70
    return null;
02bb8761fcce Initial load
duke
parents:
diff changeset
    71
  } // genFactory
02bb8761fcce Initial load
duke
parents:
diff changeset
    72
02bb8761fcce Initial load
duke
parents:
diff changeset
    73
  /** Return the implementation of the SymtabFactory interface.  If this
02bb8761fcce Initial load
duke
parents:
diff changeset
    74
      returns null, the default symbol table entries will be used. */
02bb8761fcce Initial load
duke
parents:
diff changeset
    75
  public SymtabFactory symtabFactory ()
02bb8761fcce Initial load
duke
parents:
diff changeset
    76
  {
02bb8761fcce Initial load
duke
parents:
diff changeset
    77
    return new DefaultSymtabFactory ();
02bb8761fcce Initial load
duke
parents:
diff changeset
    78
  } // symtabFactory
02bb8761fcce Initial load
duke
parents:
diff changeset
    79
02bb8761fcce Initial load
duke
parents:
diff changeset
    80
  /** Return the implementation of the ExprFactory interface.  If this
02bb8761fcce Initial load
duke
parents:
diff changeset
    81
      returns null, the default expressions will be used. */
02bb8761fcce Initial load
duke
parents:
diff changeset
    82
  public com.sun.tools.corba.se.idl.constExpr.ExprFactory exprFactory ()
02bb8761fcce Initial load
duke
parents:
diff changeset
    83
  {
02bb8761fcce Initial load
duke
parents:
diff changeset
    84
    return new com.sun.tools.corba.se.idl.constExpr.DefaultExprFactory ();
02bb8761fcce Initial load
duke
parents:
diff changeset
    85
  } // exprFactory
02bb8761fcce Initial load
duke
parents:
diff changeset
    86
02bb8761fcce Initial load
duke
parents:
diff changeset
    87
  /** Return a subclass of the Arguments class.  If this returns null,
02bb8761fcce Initial load
duke
parents:
diff changeset
    88
      the default will be used. */
02bb8761fcce Initial load
duke
parents:
diff changeset
    89
  public Arguments arguments ()
02bb8761fcce Initial load
duke
parents:
diff changeset
    90
  {
02bb8761fcce Initial load
duke
parents:
diff changeset
    91
    return new Arguments ();
02bb8761fcce Initial load
duke
parents:
diff changeset
    92
  } // arguments
02bb8761fcce Initial load
duke
parents:
diff changeset
    93
02bb8761fcce Initial load
duke
parents:
diff changeset
    94
  /** Return the list of keywords in the generated language.
02bb8761fcce Initial load
duke
parents:
diff changeset
    95
      Note that these keywords may contain the following wildcards:
02bb8761fcce Initial load
duke
parents:
diff changeset
    96
      <dl>
02bb8761fcce Initial load
duke
parents:
diff changeset
    97
      <dt>`*'
02bb8761fcce Initial load
duke
parents:
diff changeset
    98
      <dd>matches zero or more characters
02bb8761fcce Initial load
duke
parents:
diff changeset
    99
      <dt>`+'
02bb8761fcce Initial load
duke
parents:
diff changeset
   100
      <dd>matches one or more characters
02bb8761fcce Initial load
duke
parents:
diff changeset
   101
      <dt>`.'
02bb8761fcce Initial load
duke
parents:
diff changeset
   102
      <dd>matches any single character
02bb8761fcce Initial load
duke
parents:
diff changeset
   103
      </dl> */
02bb8761fcce Initial load
duke
parents:
diff changeset
   104
  public String[] languageKeywords ()
02bb8761fcce Initial load
duke
parents:
diff changeset
   105
  {
02bb8761fcce Initial load
duke
parents:
diff changeset
   106
    return null;
02bb8761fcce Initial load
duke
parents:
diff changeset
   107
  } // languageKeywords
02bb8761fcce Initial load
duke
parents:
diff changeset
   108
} // interface Factories