Class JavaGeneratorFactory

java.lang.Object
org.apache.axis.wsdl.toJava.JavaGeneratorFactory
All Implemented Interfaces:
GeneratorFactory

public class JavaGeneratorFactory extends Object implements GeneratorFactory
This is Wsdl2java's implementation of the GeneratorFactory
  • Field Details

    • emitter

      protected Emitter emitter
      Field emitter
    • symbolTable

      protected SymbolTable symbolTable
      Field symbolTable
    • COMPLEX_TYPE_FAULT

      public static String COMPLEX_TYPE_FAULT
      Field COMPLEX_TYPE_FAULT
    • EXCEPTION_CLASS_NAME

      public static String EXCEPTION_CLASS_NAME
      Field EXCEPTION_CLASS_NAME
    • EXCEPTION_DATA_TYPE

      public static String EXCEPTION_DATA_TYPE
      Field EXCEPTION_DATA_TYPE
    • bindingWriters

      protected JavaGeneratorFactory.Writers bindingWriters
      Return Wsdl2java's JavaBindingWriter object.
    • serviceWriters

      protected JavaGeneratorFactory.Writers serviceWriters
      Return Wsdl2java's JavaServiceWriter object.
  • Constructor Details

    • JavaGeneratorFactory

      public JavaGeneratorFactory()
      Default constructor. Note that this class is unusable until setEmitter is called.
    • JavaGeneratorFactory

      public JavaGeneratorFactory(Emitter emitter)
      Constructor JavaGeneratorFactory
      Parameters:
      emitter -
  • Method Details

    • setEmitter

      public void setEmitter(Emitter emitter)
      Method setEmitter
      Parameters:
      emitter -
    • addMessageGenerators

      protected void addMessageGenerators()
      These addXXXGenerators are called by the constructor. If an extender of this factory wants to CHANGE the set of generators that are called per WSDL construct, they should override these addXXXGenerators methods. If all an extender wants to do is ADD a generator, then the extension should simply call addGenerator. (NOTE: It doesn't quite work this way, yet. Only the Definition generators fit this model at this point in time.)
    • addPortTypeGenerators

      protected void addPortTypeGenerators()
      Method addPortTypeGenerators
    • addBindingGenerators

      protected void addBindingGenerators()
      Method addBindingGenerators
    • addServiceGenerators

      protected void addServiceGenerators()
      Method addServiceGenerators
    • addTypeGenerators

      protected void addTypeGenerators()
      Method addTypeGenerators
    • addDefinitionGenerators

      protected void addDefinitionGenerators()
      Method addDefinitionGenerators
    • generatorPass

      public void generatorPass(javax.wsdl.Definition def, SymbolTable symbolTable)
      Do the Wsdl2java generator pass: - resolve name clashes - construct signatures
      Specified by:
      generatorPass in interface GeneratorFactory
      Parameters:
      def -
      symbolTable -
    • getGenerator

      public Generator getGenerator(javax.wsdl.Message message, SymbolTable symbolTable)
      Method getGenerator
      Specified by:
      getGenerator in interface GeneratorFactory
      Parameters:
      message -
      symbolTable -
      Returns:
    • getGenerator

      public Generator getGenerator(javax.wsdl.PortType portType, SymbolTable symbolTable)
      Method getGenerator
      Specified by:
      getGenerator in interface GeneratorFactory
      Parameters:
      portType -
      symbolTable -
      Returns:
    • getGenerator

      public Generator getGenerator(javax.wsdl.Binding binding, SymbolTable symbolTable)
      Method getGenerator
      Specified by:
      getGenerator in interface GeneratorFactory
      Parameters:
      binding -
      symbolTable -
      Returns:
    • getGenerator

      public Generator getGenerator(javax.wsdl.Service service, SymbolTable symbolTable)
      Method getGenerator
      Specified by:
      getGenerator in interface GeneratorFactory
      Parameters:
      service -
      symbolTable -
      Returns:
    • getGenerator

      public Generator getGenerator(TypeEntry type, SymbolTable symbolTable)
      Method getGenerator
      Specified by:
      getGenerator in interface GeneratorFactory
      Parameters:
      type -
      symbolTable -
      Returns:
    • getGenerator

      public Generator getGenerator(javax.wsdl.Definition definition, SymbolTable symbolTable)
      Method getGenerator
      Specified by:
      getGenerator in interface GeneratorFactory
      Parameters:
      definition -
      symbolTable -
      Returns:
    • addGenerator

      public void addGenerator(Class wsdlClass, Class generator)
      Method addGenerator
      Parameters:
      wsdlClass -
      generator -
    • javifyNames

      protected void javifyNames(SymbolTable symbolTable)
      Fill in the names of each SymTabEntry with the javaified name. Note: This method also ensures that anonymous types are given unique java type names.
      Parameters:
      symbolTable -
    • javifyTypeEntryName

      protected int javifyTypeEntryName(SymbolTable symbolTable, TypeEntry entry, HashMap anonQNames, int uniqueNum)
      Refactored to call recursively for JAX-RPC 1.1 spec 4.2.5.
    • getExceptionJavaNameHook

      protected String getExceptionJavaNameHook(QName qname)
    • determineInterfaceNames

      protected void determineInterfaceNames(SymbolTable symbolTable)
      Method determineInterfaceNames
      Parameters:
      symbolTable -
    • getServiceEndpointInterfaceJavaNameHook

      protected String getServiceEndpointInterfaceJavaNameHook(PortTypeEntry ptEntry, BindingEntry bEntry)
    • getServiceInterfaceJavaNameHook

      protected String getServiceInterfaceJavaNameHook(ServiceEntry sEntry)
    • getPortJavaNameHook

      protected String getPortJavaNameHook(String portName)
    • resolveNameClashes

      protected void resolveNameClashes(SymbolTable symbolTable)
      Messages, PortTypes, Bindings, and Services can share the same name. If they do in this Definition, force their names to be suffixed with _PortType and _Service, respectively.
      Parameters:
      symbolTable -
    • setAllReferencesToTrue

      protected void setAllReferencesToTrue()
      The --all flag is set on the command line (or generateAll(true) is called on WSDL2Java). Set all symbols as referenced (except nonSOAP bindings which we don't know how to deal with).
    • ignoreNonSOAPBindings

      protected void ignoreNonSOAPBindings(SymbolTable symbolTable)
      If a binding's type is not TYPE_SOAP, then we don't use that binding or that binding's portType.
      Parameters:
      symbolTable -
    • constructSignatures

      protected void constructSignatures(SymbolTable symbolTable)
      Method constructSignatures
      Parameters:
      symbolTable -
    • getOperationJavaNameHook

      protected String getOperationJavaNameHook(BindingEntry bEntry, String wsdlOpName)
    • getReturnTypeJavaNameHook

      protected String getReturnTypeJavaNameHook(BindingEntry bEntry, String wsdlOpName)
    • getParameterTypeJavaNameHook

      protected String getParameterTypeJavaNameHook(BindingEntry bEntry, String wsdlOpName, int pos)
    • determineIfHoldersNeeded

      protected void determineIfHoldersNeeded(SymbolTable symbolTable)
      Find all inout/out parameters and add a flag to the Type of that parameter saying a holder is needed.
      Parameters:
      symbolTable -
    • setBaseTypeMapping

      public void setBaseTypeMapping(BaseTypeMapping btm)
      Method setBaseTypeMapping
      Specified by:
      setBaseTypeMapping in interface GeneratorFactory
      Parameters:
      btm -
    • getBaseTypeMapping

      public BaseTypeMapping getBaseTypeMapping()
      Method getBaseTypeMapping
      Specified by:
      getBaseTypeMapping in interface GeneratorFactory
      Returns:
    • include

      protected boolean include(QName qName)
      Determines whether the QName supplied should be generated by comparing the namespace for the QName against the included and excluded names.

      • if both the includes and excludes are both empty, the element is generated
      • if the namespace is in the includes, the element is generated
      • if the namespace is not in the excludes and the includes are empty, the element will be generated.
      • if the namespace is only in the excludes, the element is not generated
      • if the namespace is not in the includes and the includes are not empty, the element is not generated
      Parameters:
      qName -
      Returns: