org.apache.axis.wsdl.toJava

Class JavaGeneratorFactory

Implemented Interfaces:
GeneratorFactory

public class JavaGeneratorFactory
extends java.lang.Object
implements GeneratorFactory

This is Wsdl2java's implementation of the GeneratorFactory

Nested Class Summary

protected class
JavaGeneratorFactory.Writers
Class Writers

Field Summary

static String
COMPLEX_TYPE_FAULT
Field COMPLEX_TYPE_FAULT
static String
EXCEPTION_CLASS_NAME
Field EXCEPTION_CLASS_NAME
static String
EXCEPTION_DATA_TYPE
Field EXCEPTION_DATA_TYPE
protected JavaGeneratorFactory.Writers
bindingWriters
Return Wsdl2java's JavaBindingWriter object.
protected Emitter
emitter
Field emitter
protected JavaGeneratorFactory.Writers
serviceWriters
Return Wsdl2java's JavaServiceWriter object.
protected SymbolTable
symbolTable
Field symbolTable

Constructor Summary

JavaGeneratorFactory()
Default constructor.
JavaGeneratorFactory(Emitter emitter)
Constructor JavaGeneratorFactory

Method Summary

protected void
addBindingGenerators()
Method addBindingGenerators
protected void
addDefinitionGenerators()
Method addDefinitionGenerators
void
addGenerator(Class wsdlClass, Class generator)
Method addGenerator
protected void
addMessageGenerators()
These addXXXGenerators are called by the constructor.
protected void
addPortTypeGenerators()
Method addPortTypeGenerators
protected void
addServiceGenerators()
Method addServiceGenerators
protected void
addTypeGenerators()
Method addTypeGenerators
protected void
constructSignatures(SymbolTable symbolTable)
Method constructSignatures
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.
protected void
determineInterfaceNames(SymbolTable symbolTable)
Method determineInterfaceNames
void
generatorPass(Definition def, SymbolTable symbolTable)
Do the Wsdl2java generator pass: - resolve name clashes - construct signatures
BaseTypeMapping
getBaseTypeMapping()
Method getBaseTypeMapping
protected String
getExceptionJavaNameHook(QName qname)
Generator
getGenerator(Binding binding, SymbolTable symbolTable)
Method getGenerator
Generator
getGenerator(Definition definition, SymbolTable symbolTable)
Method getGenerator
Generator
getGenerator(Message message, SymbolTable symbolTable)
Method getGenerator
Generator
getGenerator(PortType portType, SymbolTable symbolTable)
Method getGenerator
Generator
getGenerator(Service service, SymbolTable symbolTable)
Method getGenerator
Generator
getGenerator(TypeEntry type, SymbolTable symbolTable)
Method getGenerator
protected String
getOperationJavaNameHook(BindingEntry bEntry, String wsdlOpName)
protected String
getParameterTypeJavaNameHook(BindingEntry bEntry, String wsdlOpName, int pos)
protected String
getPortJavaNameHook(String portName)
protected String
getReturnTypeJavaNameHook(BindingEntry bEntry, String wsdlOpName)
protected String
getServiceEndpointInterfaceJavaNameHook(PortTypeEntry ptEntry, BindingEntry bEntry)
protected String
getServiceInterfaceJavaNameHook(ServiceEntry sEntry)
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.
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.
protected void
javifyNames(SymbolTable symbolTable)
Fill in the names of each SymTabEntry with the javaified name.
protected int
javifyTypeEntryName(SymbolTable symbolTable, TypeEntry entry, HashMap anonQNames, int uniqueNum)
Refactored to call recursively for JAX-RPC 1.1 spec 4.2.5.
protected void
resolveNameClashes(SymbolTable symbolTable)
Messages, PortTypes, Bindings, and Services can share the same name.
protected void
setAllReferencesToTrue()
The --all flag is set on the command line (or generateAll(true) is called on WSDL2Java).
void
setBaseTypeMapping(BaseTypeMapping btm)
Method setBaseTypeMapping
void
setEmitter(Emitter emitter)
Method setEmitter

Field Details

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.

emitter

protected Emitter emitter
Field emitter

serviceWriters

protected JavaGeneratorFactory.Writers serviceWriters
Return Wsdl2java's JavaServiceWriter object.

symbolTable

protected SymbolTable symbolTable
Field symbolTable

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

addBindingGenerators

protected void addBindingGenerators()
Method addBindingGenerators

addDefinitionGenerators

protected void addDefinitionGenerators()
Method addDefinitionGenerators

addGenerator

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

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

addServiceGenerators

protected void addServiceGenerators()
Method addServiceGenerators

addTypeGenerators

protected void addTypeGenerators()
Method addTypeGenerators

constructSignatures

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

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 -

determineInterfaceNames

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

generatorPass

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

getBaseTypeMapping

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

getExceptionJavaNameHook

protected String getExceptionJavaNameHook(QName qname)

getGenerator

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

getGenerator

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

getGenerator

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

getGenerator

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

getGenerator

public Generator getGenerator(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:

getOperationJavaNameHook

protected String getOperationJavaNameHook(BindingEntry bEntry,
                                          String wsdlOpName)

getParameterTypeJavaNameHook

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

getPortJavaNameHook

protected String getPortJavaNameHook(String portName)

getReturnTypeJavaNameHook

protected String getReturnTypeJavaNameHook(BindingEntry bEntry,
                                           String wsdlOpName)

getServiceEndpointInterfaceJavaNameHook

protected String getServiceEndpointInterfaceJavaNameHook(PortTypeEntry ptEntry,
                                                         BindingEntry bEntry)

getServiceInterfaceJavaNameHook

protected String getServiceInterfaceJavaNameHook(ServiceEntry sEntry)

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 -

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:

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.

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).

setBaseTypeMapping

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

setEmitter

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

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.