<typesystem package="com.trolltech.tools.generator" default-superclass="com.trolltech.qt.QtJambiObject">
  <load-typesystem name=":/trolltech/generator/typesystem_core.txt" generate="no" />

  <rejection class="QDataStream"/>
  <rejection class="MetaJavaBuilder" field-name="m_used_types" />
  <rejection class="MetaJavaBuilder" function-name="figureOutEnumValuesForClass" />
  <rejection class="JavaGenerator" function-name="retrieveModifications" />
  <rejection class="JavaGenerator" function-name="setupForFunction" />
  
  <object-type name="JuicDataGenerator">
    <include file-name="juicdatagenerator.h" location="local" />
  </object-type>
  
  <object-type name="MetaInfoGenerator">
    <include file-name="metainfogenerator.h" location="local" />
  </object-type>
  
  <object-type name="ReportHandler">
    <include file-name="reporthandler.h" location="local" />
  </object-type>
  
  <object-type name="CppGenerator">
    <include file-name="cppgenerator.h" location="local" />
  </object-type>

  <object-type name="CppHeaderGenerator">
    <include file-name="cppheadergenerator.h" location="local" />
  </object-type>
 
  <object-type name="CppImplGenerator">
    <include file-name="cppimplgenerator.h" location="local" />
  </object-type>
 
  <object-type name="Generator">
    <include file-name="generator.h" location="local" />
  </object-type>
  
 <object-type name="JavaGenerator">
    <modify-function signature="translateType(const MetaJavaType *, Generator::Option option)">
       <replace-default-expression index="2" with="Option.NoOption" />
    </modify-function>
    <include file-name="javagenerator.h" location="local" />
  </object-type>   

  <object-type name="MetaJavaArgument">
    <include file-name="metajava.h" location="local" />
  </object-type>
  
  <interface-type name="MetaJavaAttributes"/>
  
  <object-type name="MetaJavaBuilder">
    <include file-name="metajavabuilder.h" location="local" />
  </object-type>
  
 <object-type name="MetaJavaClass">
    <include file-name="metajava.h" location="local" />
    <modify-function signature="package() const">
        <rename to="packageName" />
    </modify-function>
 </object-type>
 
 <object-type name="MetaJavaEnum">
    <include file-name="metajava.h" location="local" />
    <modify-function signature="package() const">
        <rename to="packageName" />
    </modify-function>    
 </object-type>
 
 <object-type name="MetaJavaEnumValue">
    <include file-name="metajava.h" location="local" />
 </object-type>
 
 <object-type name="MetaJavaField">
    <include file-name="metajava.h" location="local" />
 </object-type>
 
 <object-type name="MetaJavaFunction">
    <include file-name="metajava.h" location="local" />
 </object-type>
 
 <object-type name="MetaJavaType">
    <include file-name="metajava.h" location="local" />
    <modify-function signature="package() const">
        <rename to="packageName" />
    </modify-function>    
 </object-type>
 
 <object-type name="MetaJavaVariable">
    <include file-name="metajava.h" location="local" />
 </object-type>
 
 <object-type name="Preprocess">
    <include file-name="main.h" location="local" />
 </object-type>
 
 <object-type name="TypeParser">
    <include file-name="typeparser.h" location="local" />
 </object-type>
 
 
  <object-type name="ArrayTypeEntry">
     <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="CharTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="ComplexTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="ContainerTypeEntry">
    <include file-name="typesystem.h" location="local"/>
    <modify-function signature="type() const">
      <rename to="containerType" />
    </modify-function>
  </object-type>

  <object-type name="EnumTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="FlagsTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="InterfaceTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="NamespaceTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="ObjectTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="PrimitiveTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="StringTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="TemplateArgumentEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="ThreadTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="TypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="ValueTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="VariantTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>

  <object-type name="VoidTypeEntry">
    <include file-name="typesystem.h" location="local"/>
  </object-type>



  <object-type name="TypeDatabase">
    <include file-name="typesystem.h" location="local"/>
  </object-type>



  <value-type name="CodeSnip">
    <include file-name="typesystem.h" location="local"/>
  </value-type>

  <value-type name="CustomFunction">
    <include file-name="typesystem.h" location="local"/>
  </value-type>

  <value-type name="FieldModification">
    <include file-name="typesystem.h" location="local"/>
  </value-type>

  <value-type name="FunctionModification">
    <include file-name="typesystem.h" location="local"/>
  </value-type>

  <value-type name="Include">
    <include file-name="typesystem.h" location="local"/>
  </value-type>

  <value-type name="TypeRejection">
    <include file-name="typesystem.h" location="local"/>
  </value-type>
  
  <value-type name="TypeParser::Info">
    <include file-name="typeparser.h" location="local"/>
  </value-type>

  <value-type name="MetaJavaClassList">
    <inject-code class="shell-declaration">
    QList&lt;MetaJavaClass *&gt; &amp;operator=(const QList&lt;MetaJavaClass *&gt; &amp;other)
    {
        return ((QList&lt;MetaJavaClass *&gt; *)this)-&gt;operator=(other);
    }    
    </inject-code>
  </value-type>
  <value-type name="MetaJavaEnumValueList">
    <inject-code class="shell-declaration">
    QList&lt;MetaJavaEnumValue *&gt; &amp;operator=(const QList&lt;MetaJavaEnumValue *&gt; &amp;other)
    {
        return ((QList&lt;MetaJavaEnumValue *&gt; *)this)-&gt;operator=(other);
    }
    </inject-code>    
  </value-type>

  <enum-type name="CodeSnip::Language"/>
  <enum-type name="CodeSnip::Position"/>
  <enum-type name="ContainerTypeEntry::Type"/>
  <enum-type name="FieldModification::Modifiers"/>
  <enum-type name="FunctionModification::Modifiers"/>
  <enum-type name="FunctionModification::DisableGarbageCollectionArgument"/>
  <enum-type name="Include::IncludeType"/>
  <enum-type name="TypeEntry::CodeGeneration"/>
  <enum-type name="TypeEntry::Type"/>
  <enum-type name="MetaJavaAttributes::Attribute"/>
  <enum-type name="MetaJavaBuilder::RejectReason"/>
  <enum-type name="MetaJavaClass::FunctionQueryOption"/>
  <enum-type name="MetaJavaFunction::CompareResult" force-integer="yes">
      <reject-enum-value name="NotEqual"/>
  </enum-type>
  <enum-type name="MetaJavaFunction::FunctionType"/>
  <enum-type name="MetaJavaFunction::FunctionContext"/>
  <enum-type name="MetaJavaType::TypeUsagePattern"/>
  <enum-type name="Generator::Option"/>
  <enum-type name="ReportHandler::DebugLevel"/>
  

</typesystem>
