GenFactory.java revision 608:7e06bf1dcb09
1/*
2 * Copyright (c) 1999, 2000, 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 */
25/*
26 * COMPONENT_NAME: idl.parser
27 *
28 * ORIGINS: 27
29 *
30 * Licensed Materials - Property of IBM
31 * 5639-D57 (C) COPYRIGHT International Business Machines Corp. 1997, 1999
32 * RMI-IIOP v1.0
33 *
34 */
35
36package com.sun.tools.corba.se.idl;
37
38// NOTES:
39
40/**
41 * To extend this compiler framework to generate something other than
42 * the default, this factory interface must be implemented and the name
43 * of it must be set in the main method (see idl.Compile).
44 * <p>
45 * The implementation of each method should be quite simple.  Take
46 * createAttributeGen, for instance.  If the interface AttributeGen is
47 * implemented by a class called MyAttributeGen, then createAttributeGen
48 * will be the following:
49 * <pre>
50 * public AttributeGen createAttributeGen ()
51 * {
52 *   return new MyAttributeGen ();
53 * }
54 * </pre>
55 * <p>
56 * If it is desired that a generator do nothing, it is not necessary to
57 * implement one which does nothing; you may simply write that particular
58 * create method so that it returns null.
59 * <p>
60 * Note that this class MUST have a public default constructor (one which
61 * takes no parameters).
62 **/
63public interface GenFactory
64{
65  public AttributeGen    createAttributeGen ();
66  public ConstGen        createConstGen ();
67  public EnumGen         createEnumGen ();
68  public ExceptionGen    createExceptionGen ();
69  public ForwardGen      createForwardGen ();
70  public ForwardValueGen createForwardValueGen ();
71  public IncludeGen      createIncludeGen ();
72  public InterfaceGen    createInterfaceGen ();
73  public ValueGen        createValueGen ();
74  public ValueBoxGen     createValueBoxGen ();
75  public MethodGen       createMethodGen ();
76  public ModuleGen       createModuleGen ();
77  public NativeGen       createNativeGen ();
78  public ParameterGen    createParameterGen ();
79  public PragmaGen       createPragmaGen ();
80  public PrimitiveGen    createPrimitiveGen ();
81  public SequenceGen     createSequenceGen ();
82  public StringGen       createStringGen ();
83  public StructGen       createStructGen ();
84  public TypedefGen      createTypedefGen ();
85  public UnionGen        createUnionGen ();
86} // interface GenFactory
87