cuba.util.codegen
Class WSTAdapterGenerator

java.lang.Object
  extended by cuba.util.codegen.AbstractWSAdapterGenerator
      extended by cuba.util.codegen.WSTAdapterGenerator

public class WSTAdapterGenerator
extends AbstractWSAdapterGenerator

WSTAdapterGenerator.

Version:
$Revision: 1.6 $ - $Modtime: $ ($Author: jlr $)
Author:
Thomas Kuhlmann

Field Summary
protected  CUBAComponent component
           
protected  java.lang.Class externalInterface
           
protected  java.lang.String externalInterfacePackage
           
protected  java.lang.Class implClass
           
protected  java.lang.String implPackage
           
protected  java.lang.Class internalInterface
           
protected  java.lang.String internalInterfacePackage
           
static java.lang.String METHODPARAMNAME_PREFIX
           
static java.lang.String METHODRETURN
           
protected  AdapterGeneratorOptions options
           
 
Constructor Summary
WSTAdapterGenerator(CUBAComponent component, java.lang.String internalInterfacePackage, java.lang.String externalInterfacePackage, java.lang.String implPackage, AdapterGeneratorOptions options)
          Constructor.
 
Method Summary
protected  void checkSerializable(java.lang.Class type)
           
protected  void checkSignature(java.lang.reflect.Method method, boolean external)
           
protected  void collectForeignType(java.lang.String homePackage, java.util.HashSet types, java.lang.Class type)
           
protected  GeneratorResult generate(GeneratorResult result)
           
protected  void generateClientAdaptorConstructor(GeneratedFile adapterFile, java.lang.String className)
          Generate the constructor for the client-adaptor class to use the service-locator.
protected  void generateClientAdaptorIdentifier(GeneratedFile adapterFile)
          Generate the overriden identifier-method (getSymbolicName()) for the client-adaptor-class.
protected  void generateClientAdaptorImports(GeneratedFile wstClientFile)
          Generate the import declaration
protected  void generateClientAdaptorMethod(GeneratedFile adapterFile, java.lang.reflect.Method pMethod)
          Generate method-implementation for client-adaptor.
protected  void generateComponentInjection(GeneratedFile adapter)
           
protected  void generateCoreMethodCall(GeneratedFile adapter, java.lang.String methodName, java.lang.Class[] paramTypes)
           
protected  void generateDependencyInjection(GeneratedFile adapter)
           
protected  void generateEntityManagerInjection(GeneratedFile adapter)
           
protected  void generateEnvironmentInjection(GeneratedFile adapter)
           
protected  void generateFileHeader(GeneratedFile adapter, java.lang.String info, java.lang.Class interfaceType)
           
protected  void generateInjectionStatement(GeneratedFile adapter, Reference ref, java.lang.String getter)
           
protected  void generateLifecyleCall(GeneratedFile adapter, java.lang.String callType)
           
protected  void generatePostActivate(GeneratedFile adapter)
           
protected  void generatePostConstruct(GeneratedFile adapter)
           
protected  void generatePreDestroy(GeneratedFile adapter)
           
protected  void generatePrePassivate(GeneratedFile adapter)
           
protected  void generateResourceInjection(GeneratedFile adapter)
           
protected  void generateServerAdaptorConstructor(GeneratedFile adapterFile, java.lang.String className)
          Generate the constructor for the client-adaptor class to use the service-locator.
protected  void generateServerAdaptorMethod(GeneratedFile adapterFile, java.lang.reflect.Method pMethod)
          Generate method-implementation for server-adaptor.
protected  void generateServerMethodDeclarator(GeneratedFile adapterFile, java.lang.reflect.Method method)
          Method-Declaration is changed for tunnel-adapter: All types are changed to string All exceptions are removed.
protected  void generateSoapClasses(java.lang.String pInfo, java.lang.String pNameOfWSTI)
          Generates SOAP-classes ...
protected  void generateWSTClientAdaptor(java.lang.String pInfo, GeneratorResult result)
          Create the class "*_WSTClient" for the webservice-tunnel
based on the external interface of the component.
protected  void generateWSTInterface(java.lang.String pInfo, GeneratorResult result)
          Create the interface "*_WSTI" for the webservice-tunnel
based on the external interface of the component.
protected  void generateWSTServerAdaptor(java.lang.String pInfo, GeneratorResult result)
           
protected  java.lang.String getAdaptorName(java.lang.String pSuffix)
           
protected  java.lang.reflect.Method getMethod(java.lang.Class type, java.lang.String methodName, java.lang.Class[] paramTypes)
           
protected  java.lang.reflect.Method getMethod(java.lang.String typeName, java.lang.String methodName)
           
protected  java.lang.reflect.Method getMethod(java.lang.String typeName, java.lang.String methodName, java.lang.Class[] paramTypes)
           
protected  java.lang.String getPrimitiveWrapperClass(java.lang.String primitive)
          Method to get the wrapperclassname of a primitive type
protected  java.lang.String getSimpleTypeName(java.lang.Class type)
          Does the same as Class.getSimpleName() in Java 5.
protected  java.lang.String getWSTCompliantType(java.lang.Class pSourceClass)
          Return primitives as they are and string for complex-types.
protected  java.lang.String getWSTInterfaceName()
           
protected  boolean isVoid(java.lang.reflect.Method method)
           
protected  boolean isWSTCompliantType(java.lang.Class pSourceClass)
           
protected  java.lang.String methodMemberName(java.lang.reflect.Method method)
           
protected  GeneratedFile open(java.lang.String basename)
           
protected  GeneratedFile open(java.lang.String basename, java.lang.String packageName)
           
 
Methods inherited from class cuba.util.codegen.AbstractWSAdapterGenerator
generateMethodDeclarator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

METHODPARAMNAME_PREFIX

public static final java.lang.String METHODPARAMNAME_PREFIX
See Also:
Constant Field Values

METHODRETURN

public static final java.lang.String METHODRETURN
See Also:
Constant Field Values

component

protected CUBAComponent component

externalInterface

protected java.lang.Class externalInterface

internalInterface

protected java.lang.Class internalInterface

implClass

protected java.lang.Class implClass

externalInterfacePackage

protected java.lang.String externalInterfacePackage

internalInterfacePackage

protected java.lang.String internalInterfacePackage

implPackage

protected java.lang.String implPackage

options

protected AdapterGeneratorOptions options
Constructor Detail

WSTAdapterGenerator

public WSTAdapterGenerator(CUBAComponent component,
                           java.lang.String internalInterfacePackage,
                           java.lang.String externalInterfacePackage,
                           java.lang.String implPackage,
                           AdapterGeneratorOptions options)
                    throws GeneratorException
Constructor.

Throws:
GeneratorException
Method Detail

generate

protected GeneratorResult generate(GeneratorResult result)
                            throws GeneratorException
Throws:
GeneratorException
See Also:
cuba.util.codegen.AbstractAdapterGenerator#generate()

getAdaptorName

protected java.lang.String getAdaptorName(java.lang.String pSuffix)

getWSTInterfaceName

protected java.lang.String getWSTInterfaceName()

generateWSTInterface

protected void generateWSTInterface(java.lang.String pInfo,
                                    GeneratorResult result)
                             throws GeneratorException
Create the interface "*_WSTI" for the webservice-tunnel
based on the external interface of the component.

Throws:
GeneratorException
See Also:
#generateServerMethodDeclarator(PrintStream, Method, boolean)

generateServerMethodDeclarator

protected void generateServerMethodDeclarator(GeneratedFile adapterFile,
                                              java.lang.reflect.Method method)
                                       throws GeneratorException
Method-Declaration is changed for tunnel-adapter:

Throws:
GeneratorException

getWSTCompliantType

protected java.lang.String getWSTCompliantType(java.lang.Class pSourceClass)
Return primitives as they are and string for complex-types.


isWSTCompliantType

protected boolean isWSTCompliantType(java.lang.Class pSourceClass)

generateWSTClientAdaptor

protected void generateWSTClientAdaptor(java.lang.String pInfo,
                                        GeneratorResult result)
                                 throws GeneratorException
Create the class "*_WSTClient" for the webservice-tunnel
based on the external interface of the component.

Throws:
GeneratorException

generateClientAdaptorImports

protected void generateClientAdaptorImports(GeneratedFile wstClientFile)
Generate the import declaration


generateClientAdaptorConstructor

protected void generateClientAdaptorConstructor(GeneratedFile adapterFile,
                                                java.lang.String className)
                                         throws java.lang.ClassNotFoundException
Generate the constructor for the client-adaptor class to use the service-locator.

Throws:
java.lang.ClassNotFoundException

generateClientAdaptorIdentifier

protected void generateClientAdaptorIdentifier(GeneratedFile adapterFile)
                                        throws java.lang.ClassNotFoundException
Generate the overriden identifier-method (getSymbolicName()) for the client-adaptor-class.

Throws:
java.lang.ClassNotFoundException

generateClientAdaptorMethod

protected void generateClientAdaptorMethod(GeneratedFile adapterFile,
                                           java.lang.reflect.Method pMethod)
Generate method-implementation for client-adaptor.


getPrimitiveWrapperClass

protected java.lang.String getPrimitiveWrapperClass(java.lang.String primitive)
Method to get the wrapperclassname of a primitive type

Parameters:
primitive - Name of the primitive
Returns:
String of wrapperclassname

generateWSTServerAdaptor

protected void generateWSTServerAdaptor(java.lang.String pInfo,
                                        GeneratorResult result)
                                 throws GeneratorException
Throws:
GeneratorException

generateServerAdaptorConstructor

protected void generateServerAdaptorConstructor(GeneratedFile adapterFile,
                                                java.lang.String className)
                                         throws java.lang.ClassNotFoundException
Generate the constructor for the client-adaptor class to use the service-locator.

Throws:
java.lang.ClassNotFoundException

generateServerAdaptorMethod

protected void generateServerAdaptorMethod(GeneratedFile adapterFile,
                                           java.lang.reflect.Method pMethod)
                                    throws GeneratorException
Generate method-implementation for server-adaptor.

Throws:
GeneratorException

generateSoapClasses

protected void generateSoapClasses(java.lang.String pInfo,
                                   java.lang.String pNameOfWSTI)
                            throws GeneratorException
Generates SOAP-classes ... ... based on the generated interface "*_WSTI".

Therefore the axis-tools "java2wsdl" and "wsdl2java" are used.
(The WSDL is deleted after generation also any other unwanted class.)

Throws:
GeneratorException
See Also:
#generateWSTInterface(String), AxisUtils#generateWSDL(CUBAComponent, String, String, String, String), AxisUtils#generateWSDD(CUBAComponent, String)

open

protected GeneratedFile open(java.lang.String basename)
                      throws GeneratorException
Throws:
GeneratorException

open

protected GeneratedFile open(java.lang.String basename,
                             java.lang.String packageName)
                      throws GeneratorException
Throws:
GeneratorException

generateFileHeader

protected void generateFileHeader(GeneratedFile adapter,
                                  java.lang.String info,
                                  java.lang.Class interfaceType)

collectForeignType

protected void collectForeignType(java.lang.String homePackage,
                                  java.util.HashSet types,
                                  java.lang.Class type)

getSimpleTypeName

protected java.lang.String getSimpleTypeName(java.lang.Class type)
Does the same as Class.getSimpleName() in Java 5. The function appears here to keep the CUBA code compatible with JDK 1.4


checkSerializable

protected void checkSerializable(java.lang.Class type)
                          throws GeneratorException
Throws:
GeneratorException

checkSignature

protected void checkSignature(java.lang.reflect.Method method,
                              boolean external)
                       throws GeneratorException
Throws:
GeneratorException

getMethod

protected java.lang.reflect.Method getMethod(java.lang.Class type,
                                             java.lang.String methodName,
                                             java.lang.Class[] paramTypes)
                                      throws GeneratorException
Throws:
GeneratorException

getMethod

protected java.lang.reflect.Method getMethod(java.lang.String typeName,
                                             java.lang.String methodName,
                                             java.lang.Class[] paramTypes)
                                      throws GeneratorException
Throws:
GeneratorException

getMethod

protected java.lang.reflect.Method getMethod(java.lang.String typeName,
                                             java.lang.String methodName)
                                      throws GeneratorException
Throws:
GeneratorException

methodMemberName

protected java.lang.String methodMemberName(java.lang.reflect.Method method)

generateCoreMethodCall

protected void generateCoreMethodCall(GeneratedFile adapter,
                                      java.lang.String methodName,
                                      java.lang.Class[] paramTypes)

generateInjectionStatement

protected void generateInjectionStatement(GeneratedFile adapter,
                                          Reference ref,
                                          java.lang.String getter)

generateEnvironmentInjection

protected void generateEnvironmentInjection(GeneratedFile adapter)
                                     throws GeneratorException
Throws:
GeneratorException

generateResourceInjection

protected void generateResourceInjection(GeneratedFile adapter)
                                  throws GeneratorException
Throws:
GeneratorException

generateComponentInjection

protected void generateComponentInjection(GeneratedFile adapter)
                                   throws GeneratorException
Throws:
GeneratorException

generateEntityManagerInjection

protected void generateEntityManagerInjection(GeneratedFile adapter)
                                       throws GeneratorException
Throws:
GeneratorException

generateDependencyInjection

protected void generateDependencyInjection(GeneratedFile adapter)
                                    throws GeneratorException
Throws:
GeneratorException

generateLifecyleCall

protected void generateLifecyleCall(GeneratedFile adapter,
                                    java.lang.String callType)
                             throws GeneratorException
Throws:
GeneratorException

generatePreDestroy

protected void generatePreDestroy(GeneratedFile adapter)
                           throws GeneratorException
Throws:
GeneratorException

generatePostConstruct

protected void generatePostConstruct(GeneratedFile adapter)
                              throws GeneratorException
Throws:
GeneratorException

generatePrePassivate

protected void generatePrePassivate(GeneratedFile adapter)
                             throws GeneratorException
Throws:
GeneratorException

generatePostActivate

protected void generatePostActivate(GeneratedFile adapter)
                             throws GeneratorException
Throws:
GeneratorException

isVoid

protected boolean isVoid(java.lang.reflect.Method method)