#######################################################################################################################
#####################   code generator property file  #################################################################
#######################################################################################################################
# Extensions - The extension class names are comma separated
# and these extensions will run before the main emitter
# these are loaded in their lexical order
# Note the last extension - It includes a check to figure out whether proper databinding has taken place
# This extension should appear AFTER all the databinding extensions inorder to function properly
codegen.extension=org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtension,org.apache.axis2.wsdl.codegen.extension.JaxMeExtension, \
  org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension, \
  org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension, \
  org.apache.axis2.wsdl.codegen.extension.JiBXExtension, \
  org.apache.axis2.wsdl.codegen.extension.JAXBRIExtension, \
  org.apache.axis2.wsdl.codegen.extension.TypeMapperExtension, \
  org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension, \
  org.apache.axis2.wsdl.codegen.extension.PolicyEvaluator
#extensions that work after the main emitter. These will include functionality such as
#formatters
post.codegen.extension=org.apache.axis2.wsdl.codegen.extension.JavaPrettyPrinterExtension, \
  org.apache.axis2.wsdl.codegen.extension.XMLPrettyPrinterExtension, \
  org.apache.axis2.wsdl.codegen.extension.WSDLPrettyPrinterExtension
#codegen.extension=org.apache.axis2.wsdl.codegen.extension.AxisBindingBuilder,org.apache.axis2.wsdl.codegen.extension.WSDLValidatorExtension,org.apache.axis2.wsdl.codegen.extension.PackageFinder,org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension
# The third party schemas to be loaded. e.g. The Xmime extension
# Note - these will be loaded from the org.apache.axis2.wsdl.codegen.schema package.
# so whatever the third party schema's that are listed here should be present there
#codegen.thirdparty.schema=
codegen.thirdparty.schema=xmime.xsd,soap-enc.xsd
#####################################################################################################################
#####################################################################################################################
# Codegen data binding frameworks and their related information
# The names of the codegeneration frameworks in lexical order
# these are the names that should be passed onto the tool as arguments as well
codegen.databinding.frameworks=adb,xmlbeans,jaxme,jibx,jaxbri,none
# this property keeps the names of the databinding frameworks which support
# unwrapping 
codegen.databinding.unwrap.supported=adb,xmlbeans,jibx
# this property keeps the names of the databinding frameworks that handle unwrapping
# directly (rather than by using the unwrapper extension)
codegen.databinding.unwrap.direct=jibx
# the related extensions for the specified data binding frameworks above
# Note -  these are in the lexical order of the framework names. There is an implicit assumption
# that a given databinding framework will be processed only by one extension
codegen.databinding.extensions=org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension,org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension,org.apache.axis2.wsdl.codegen.extension.JaxMeExtension,org.apache.axis2.wsdl.codegen.extension.JiBXExtension,org.apache.axis2.wsdl.codegen.extension.JAXBRIExtension,org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension
# the default data binding framework name
codegen.databinding.frameworks.default=adb
# the databinding templates -
codegen.databinding.adb.supporter.template=/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
codegen.databinding.xmlbeans.supporter.template=/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl
codegen.databinding.jaxme.supporter.template=/org/apache/axis2/wsdl/template/java/JaxmeDatabindingTemplate.xsl
codegen.databinding.jibx.supporter.template=/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl
codegen.databinding.jaxbri.supporter.template=/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl
codegen.databinding.none.supporter.template=/org/apache/axis2/wsdl/template/java/NoneDatabindingTemplate.xsl

codegen.databinding.testobject.template=/org/apache/axis2/wsdl/template/java/TestObjectCreationTemplate.xsl
#####################################################################################################################
#####################################################################################################################
# Language types - these are the language types that the code generator understands. Again this is the name of the
# language that should be passed from the tool as well
#
codegen.languages=java,c-sharp,c
# Emitter class is the  major code generator class that should be changed according to the language.
# The emiiters need to implement the org.apache.axis2.wsdl.codegen.emitter.Emitter interface
# Note - The emitters should appear in the lexical order of the languages. So the language java in the above
# list corresponds to the org.apache.axis2.wsdl.codegen.emitter.JavaEmitter
codegen.emitters=org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter,org.apache.axis2.wsdl.codegen.emitter.CSharpEmitter,org.apache.axis2.wsdl.codegen.emitter.CEmitter
# Default language, this is the default language that would be picked when no language is specified. it should be
# one of the languages specified above
codegen.languages.default=java
# Default source folder name
codegen.general.src.name=src
# Default resource folder name
codegen.general.resource.name=resources
#####################################################################################################################
########################  Language specific section #################################################################
#####################################################################################################################
# The language specific section has a special custom style. The language name comes first and separated from the period
# a unique name. These parameters will be included in a hashmap that is will be stored in another hash map with the
# language as the key
#####################################################################################################################
# Java section  - Templates.
# The format of the templates is <writer-class-name>,<template-name>
# Note this section is specific to the emitter logic. One can have anything here!
java.interface.template=org.apache.axis2.wsdl.codegen.writer.InterfaceWriter,/org/apache/axis2/wsdl/template/java/InterfaceTemplate.xsl
java.interface.impl.template=org.apache.axis2.wsdl.codegen.writer.InterfaceImplementationWriter,/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
java.bean.template=org.apache.axis2.wsdl.codegen.writer.BeanWriter,/org/apache/axis2/wsdl/template/java/BeanTemplate.xsl
java.callback.template=org.apache.axis2.wsdl.codegen.writer.CallbackHandlerWriter,/org/apache/axis2/wsdl/template/java/CallbackHandlerTemplate.xsl
java.exception.template=org.apache.axis2.wsdl.codegen.writer.ExceptionWriter,/org/apache/axis2/wsdl/template/java/ExceptionTemplate.xsl
java.skeleton.template=org.apache.axis2.wsdl.codegen.writer.SkeletonWriter,/org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl
java.skeleton.interface.template=org.apache.axis2.wsdl.codegen.writer.SkeletonInterfaceWriter,/org/apache/axis2/wsdl/template/java/SkeletonInterfaceTemplate.xsl
java.testclass.template=org.apache.axis2.wsdl.codegen.writer.TestClassWriter,/org/apache/axis2/wsdl/template/java/TestClassTemplate.xsl
java.service.template=org.apache.axis2.wsdl.codegen.writer.ServiceXMLWriter,/org/apache/axis2/wsdl/template/general/ServiceXMLTemplate.xsl
java.message.receiver.template=org.apache.axis2.wsdl.codegen.writer.MessageReceiverWriter,/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
#
java.antbuild.jaxme.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/jaxmeAntBuildTemplate.xsl
java.antbuild.xmlbeans.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/xmlbeansAntBuildTemplate.xsl
java.antbuild.jibx.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/jibxAntBuildTemplate.xsl
java.antbuild.jaxbri.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/jaxbriAntBuildTemplate.xsl
java.antbuild.adb.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/adbAntBuildTemplate.xsl
java.antbuild.none.template=org.apache.axis2.wsdl.codegen.writer.AntBuildWriter,/org/apache/axis2/wsdl/template/general/defaultAntBuildTemplate.xsl
# file extension for generated files from this language
java.filename.extension=java
#
# ##################################################################################################################
# C sharp section - Templates
c-sharp.interface.template=org.apache.axis2.wsdl.codegen.writer.InterfaceWriter,/org/apache/axis2/wsdl/template/csharp/InterfaceTemplate.xsl
c-sharp.interface.impl.template=org.apache.axis2.wsdl.codegen.writer.InterfaceImplementationWriter,/org/apache/axis2/wsdl/template/csharp/InterfaceImplementationTemplate.xsl
c-sharp.bean.template=org.apache.axis2.wsdl.codegen.writer.BeanWriter,/org/apache/axis2/wsdl/template/csharp/BeanTemplate.xsl
c-sharp.callback.template=org.apache.axis2.wsdl.codegen.writer.CallbackHandlerWriter,/org/apache/axis2/wsdl/template/csharp/CallbackHandlerTemplate.xsl
c-sharp.skeleton.template=org.apache.axis2.wsdl.codegen.writer.SkeletonWriter,/org/apache/axis2/wsdl/template/csharp/SkeletonTemplate.xsl
c-sharp.testclass.template=org.apache.axis2.wsdl.codegen.writer.TestClassWriter,/org/apache/axis2/wsdl/template/csharp/TestClassTemplate.xsl
c-sharp.service.template=org.apache.axis2.wsdl.codegen.writer.ServiceXMLWriter,/org/apache/axis2/wsdl/template/general/ServiceXMLTemplate.xsl
c-sharp.message.receiver.template=org.apache.axis2.wsdl.codegen.writer.MessageReceiverWriter,/org/apache/axis2/wsdl/template/csharp/MessageReceiverTemplate.xsl
c-sharp.filename.extension=cs

#####################################################################################################################
# C section  - Templates.
# The format of the templates is <writer-class-name>,<template-name>
# Note this section is specific to the emitter logic. One can have anything here!

c.interface.header.template=org.apache.axis2.wsdl.codegen.writer.CStubHeaderWriter,/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl
c.interface.impl.template=org.apache.axis2.wsdl.codegen.writer.CStubSourceWriter,/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl
c.skeleton.header.template=org.apache.axis2.wsdl.codegen.writer.CSkelHeaderWriter,/org/apache/axis2/wsdl/template/c/SkelHeaderTemplate.xsl
c.skeleton.impl.template=org.apache.axis2.wsdl.codegen.writer.CSkelSourceWriter,/org/apache/axis2/wsdl/template/c/SkelSourceTemplate.xsl
c.svc_skeleton.template=org.apache.axis2.wsdl.codegen.writer.CSvcSkeletonWriter,/org/apache/axis2/wsdl/template/c/ServiceSkeleton.xsl
c.service.template=org.apache.axis2.wsdl.codegen.writer.CServiceXMLWriter,/org/apache/axis2/wsdl/template/c/ServiceXMLTemplate.xsl

# file extension for generated source files from this language
c.filename.extension=c

