DefaultSymtabFactory.java revision 608:7e06bf1dcb09
1258578Shrs/* 2258578Shrs * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. 3258578Shrs * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 426219Swpaul * 5258578Shrs * This code is free software; you can redistribute it and/or modify it 6258578Shrs * under the terms of the GNU General Public License version 2 only, as 7258578Shrs * published by the Free Software Foundation. Oracle designates this 8258578Shrs * particular file as subject to the "Classpath" exception as provided 9258578Shrs * by Oracle in the LICENSE file that accompanied this code. 10258578Shrs * 11258578Shrs * This code is distributed in the hope that it will be useful, but WITHOUT 12258578Shrs * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13258578Shrs * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14258578Shrs * version 2 for more details (a copy is included in the LICENSE file that 15258578Shrs * accompanied this code). 16258578Shrs * 17258578Shrs * You should have received a copy of the GNU General Public License version 18258578Shrs * 2 along with this work; if not, write to the Free Software Foundation, 19258578Shrs * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20258578Shrs * 21258578Shrs * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22258578Shrs * or visit www.oracle.com if you need additional information or have any 23258578Shrs * questions. 24258578Shrs */ 25258578Shrs/* 26258578Shrs * COMPONENT_NAME: idl.parser 2726219Swpaul * 28136581Sobrien * ORIGINS: 27 29136581Sobrien * 3026219Swpaul * Licensed Materials - Property of IBM 3126219Swpaul * 5639-D57 (C) COPYRIGHT International Business Machines Corp. 1997, 1999 3292990Sobrien * RMI-IIOP v1.0 3392990Sobrien * 34136581Sobrien */ 3526219Swpaul 3626219Swpaulpackage com.sun.tools.corba.se.idl; 3726219Swpaul 3826219Swpaul// NOTES: 3926219Swpaul 4026219Swpaul/** 4174462Salfred * This factory constructs the default symbol table entries, namely, 4226219Swpaul * those declared within the package com.sun.tools.corba.se.idl. 4326219Swpaul **/ 4426219Swpaulpublic class DefaultSymtabFactory implements SymtabFactory 4526219Swpaul{ 4626219Swpaul public AttributeEntry attributeEntry () 4726219Swpaul { 4826219Swpaul return new AttributeEntry (); 4926219Swpaul } // attributeEntry 5026219Swpaul 5126219Swpaul public AttributeEntry attributeEntry (InterfaceEntry container, IDLID id) 5226219Swpaul { 5326219Swpaul return new AttributeEntry (container, id); 5426219Swpaul } // attributeEntry 5526219Swpaul 5674462Salfred public ConstEntry constEntry () 5726219Swpaul { 5826219Swpaul return new ConstEntry (); 59137675Sbz } // constEntry 6026219Swpaul 61137675Sbz public ConstEntry constEntry (SymtabEntry container, IDLID id) 6226219Swpaul { 6326219Swpaul return new ConstEntry (container, id); 6492905Sobrien } // constEntry 6592905Sobrien 6626219Swpaul public NativeEntry nativeEntry () 6726219Swpaul { 6826219Swpaul return new NativeEntry (); 6926219Swpaul } // interfaceEntry 7026219Swpaul 71288113Srodrigc public NativeEntry nativeEntry (SymtabEntry container, IDLID id) 72288113Srodrigc { 7326219Swpaul return new NativeEntry (container, id); 7426219Swpaul } // interfaceEntry 7526219Swpaul 7626219Swpaul public EnumEntry enumEntry () 7737300Sbde { 7826219Swpaul return new EnumEntry (); 7926219Swpaul } // enumEntry 8026219Swpaul 8126219Swpaul public EnumEntry enumEntry (SymtabEntry container, IDLID id) 8226219Swpaul { 8326219Swpaul return new EnumEntry (container, id); 8426219Swpaul } // enumEntry 8526219Swpaul 8665220Sache public ExceptionEntry exceptionEntry () 8765220Sache { 8865220Sache return new ExceptionEntry (); 8926219Swpaul } // exceptionEntry 9026219Swpaul 9165220Sache public ExceptionEntry exceptionEntry (SymtabEntry container, IDLID id) 9265220Sache { 9326219Swpaul return new ExceptionEntry (container, id); 9426219Swpaul } // exceptionEntry 9526219Swpaul 9665220Sache public ForwardEntry forwardEntry () 97194498Sbrooks { 9865220Sache return new ForwardEntry (); 9926219Swpaul } // forwardEntry 10026219Swpaul 10126219Swpaul public ForwardEntry forwardEntry (ModuleEntry container, IDLID id) 10226219Swpaul { 10326219Swpaul return new ForwardEntry (container, id); 10426219Swpaul } // forwardEntry 10526219Swpaul 10626219Swpaul public ForwardValueEntry forwardValueEntry () 10726219Swpaul { 10826219Swpaul return new ForwardValueEntry (); 10926219Swpaul } // forwardValueEntry 11026219Swpaul 11126219Swpaul public ForwardValueEntry forwardValueEntry (ModuleEntry container, IDLID id) 11226219Swpaul { 11326219Swpaul return new ForwardValueEntry (container, id); 11426219Swpaul } // forwardValueEntry 11526219Swpaul 11626219Swpaul public IncludeEntry includeEntry () 11726219Swpaul { 11826219Swpaul return new IncludeEntry (); 11926219Swpaul } // includeEntry 12026219Swpaul 12126219Swpaul public IncludeEntry includeEntry (SymtabEntry container) 12290271Salfred { 12326219Swpaul return new IncludeEntry (container); 12426219Swpaul } // includeEntry 12526219Swpaul 12626219Swpaul public InterfaceEntry interfaceEntry () 12726219Swpaul { 12826219Swpaul return new InterfaceEntry (); 12937300Sbde } // interfaceEntry 13026219Swpaul 13137300Sbde public InterfaceEntry interfaceEntry (ModuleEntry container, IDLID id) 13237300Sbde { 13326219Swpaul return new InterfaceEntry (container, id); 13426219Swpaul } // interfaceEntry 13526219Swpaul 13626219Swpaul public ValueEntry valueEntry () 13726219Swpaul { 13826219Swpaul return new ValueEntry (); 13926219Swpaul } // valueEntry 14026219Swpaul 14126219Swpaul public ValueEntry valueEntry (ModuleEntry container, IDLID id) 14226219Swpaul { 14326219Swpaul return new ValueEntry (container, id); 14426219Swpaul } // valueEntry 14526219Swpaul 14626219Swpaul public ValueBoxEntry valueBoxEntry () 14726219Swpaul { 148288113Srodrigc return new ValueBoxEntry (); 14926219Swpaul } // valueBoxEntry 15026219Swpaul 15192889Sobrien public ValueBoxEntry valueBoxEntry (ModuleEntry container, IDLID id) 15292889Sobrien { 15392889Sobrien return new ValueBoxEntry (container, id); 15426219Swpaul } // valueBoxEntry 15526219Swpaul 15626219Swpaul public MethodEntry methodEntry () 15726219Swpaul { 15826219Swpaul return new MethodEntry (); 15926219Swpaul } // methodEntry 160194498Sbrooks 16126219Swpaul public MethodEntry methodEntry (InterfaceEntry container, IDLID id) 16226219Swpaul { 16326219Swpaul return new MethodEntry (container, id); 16426219Swpaul } // methodEntry 16526219Swpaul 16626219Swpaul public ModuleEntry moduleEntry () 16726219Swpaul { 16826219Swpaul return new ModuleEntry (); 16926219Swpaul } // moduleEntry 17026219Swpaul 17126219Swpaul public ModuleEntry moduleEntry (ModuleEntry container, IDLID id) 17226219Swpaul { 17326219Swpaul return new ModuleEntry (container, id); 17426219Swpaul } // moduleEntry 17526219Swpaul 17626219Swpaul public ParameterEntry parameterEntry () 17726219Swpaul { 17826219Swpaul return new ParameterEntry (); 17926219Swpaul } // parameterEntry 18026219Swpaul 18126219Swpaul public ParameterEntry parameterEntry (MethodEntry container, IDLID id) 18226219Swpaul { 18326219Swpaul return new ParameterEntry (container, id); 18426219Swpaul } // parameterEntry 18526219Swpaul 18626219Swpaul public PragmaEntry pragmaEntry () 187288113Srodrigc { 18826219Swpaul return new PragmaEntry (); 18926219Swpaul } // pragmaEntry 19026219Swpaul 19126219Swpaul public PragmaEntry pragmaEntry (SymtabEntry container) 19226219Swpaul { 19326219Swpaul return new PragmaEntry (container); 19426219Swpaul } // pragmaEntry 19526219Swpaul 19626219Swpaul public PrimitiveEntry primitiveEntry () 19726219Swpaul { 19826219Swpaul return new PrimitiveEntry (); 19926219Swpaul } // primitiveEntry 20026219Swpaul 20126219Swpaul /** "name" can be, but is not limited to, the primitive idl type names: 20226219Swpaul 'char', 'octet', 'short', 'long', etc. The reason it is not limited 20326219Swpaul to these is that, as an extender, you may wish to override these names. 20426219Swpaul For instance, when generating Java code, octet translates to byte, so 20526219Swpaul there is an entry in Compile.overrideNames: <"octet", "byte"> and a 20626219Swpaul PrimitiveEntry in the symbol table for "byte". */ 20726219Swpaul public PrimitiveEntry primitiveEntry (String name) 20826219Swpaul { 20926219Swpaul return new PrimitiveEntry (name); 21026219Swpaul } // primitiveEntry 21126219Swpaul 21226219Swpaul public SequenceEntry sequenceEntry () 21326219Swpaul { 21426219Swpaul return new SequenceEntry (); 21526219Swpaul } // sequenceEntry 21626219Swpaul 21726219Swpaul public SequenceEntry sequenceEntry (SymtabEntry container, IDLID id) 21890271Salfred { 21926219Swpaul return new SequenceEntry (container, id); 22026219Swpaul } // sequenceEntry 22126219Swpaul 22226219Swpaul public StringEntry stringEntry () 22326219Swpaul { 22426219Swpaul return new StringEntry (); 22526219Swpaul } // stringEntry 22626219Swpaul 22726219Swpaul public StructEntry structEntry () 22826219Swpaul { 22926219Swpaul return new StructEntry (); 23026219Swpaul } // structEntry 23126219Swpaul 23226219Swpaul public StructEntry structEntry (SymtabEntry container, IDLID id) 233288113Srodrigc { 23426219Swpaul return new StructEntry (container, id); 23526219Swpaul } // structEntry 23626219Swpaul 23726219Swpaul public TypedefEntry typedefEntry () 23826219Swpaul { 23926219Swpaul return new TypedefEntry (); 24026219Swpaul } // typedefEntry 24126219Swpaul 24226219Swpaul public TypedefEntry typedefEntry (SymtabEntry container, IDLID id) 24326219Swpaul { 24426219Swpaul return new TypedefEntry (container, id); 24526219Swpaul } // typedefEntry 246300387Sngie 24726219Swpaul public UnionEntry unionEntry () 248300387Sngie { 249300387Sngie return new UnionEntry (); 25026219Swpaul } // unionEntry 25165220Sache 25226219Swpaul public UnionEntry unionEntry (SymtabEntry container, IDLID id) 25326219Swpaul { 25426219Swpaul return new UnionEntry (container, id); 25526219Swpaul } // unionEntry 25626219Swpaul 25726219Swpaul} // interface DefaultSymtabFactory 25826219Swpaul