comparison generator/abstractmetalang.h @ 257:17b5e13364b7 lifetime

(none)
author maxter
date Wed, 16 Sep 2009 13:56:02 +0000
parents 136c9ee83ee5
children 515d6e1c7b10
comparison
equal deleted inserted replaced
256:b1abe7f57321 257:17b5e13364b7
683 m_has_virtual_slots(false), 683 m_has_virtual_slots(false),
684 m_has_nonprivateconstructor(false), 684 m_has_nonprivateconstructor(false),
685 m_functions_fixed(false), 685 m_functions_fixed(false),
686 m_has_public_destructor(true), 686 m_has_public_destructor(true),
687 m_force_shell_class(false), 687 m_force_shell_class(false),
688 m_has_virtual_destructor(false),
688 m_has_hash_function(false), 689 m_has_hash_function(false),
689 m_has_equals_operator(false), 690 m_has_equals_operator(false),
690 m_has_clone_operator(false), 691 m_has_clone_operator(false),
691 m_is_type_alias(false), 692 m_is_type_alias(false),
692 m_enclosing_class(0), 693 m_enclosing_class(0),
753 QString fullName() const { return package() + "." + name(); } 754 QString fullName() const { return package() + "." + name(); }
754 QString name() const; 755 QString name() const;
755 756
756 QString baseClassName() const { return m_base_class ? m_base_class->name() : QString(); } 757 QString baseClassName() const { return m_base_class ? m_base_class->name() : QString(); }
757 758
758 AbstractMetaClass *baseClass() const { return m_base_class; } 759 AbstractMetaClass *baseClass() const { return m_base_class;}
759 void setBaseClass(AbstractMetaClass *base_class) { m_base_class = base_class; } 760 void setBaseClass(AbstractMetaClass *base_class) { m_base_class = base_class; }
761
762 const AbstractMetaClass *rootClass() const
763 {
764 const AbstractMetaClass *root = this;
765 while (root->baseClass())
766 root = root->baseClass();
767 return root;
768 }
760 769
761 const AbstractMetaClass *enclosingClass() const { return m_enclosing_class; } 770 const AbstractMetaClass *enclosingClass() const { return m_enclosing_class; }
762 void setEnclosingClass(AbstractMetaClass *cl) { m_enclosing_class = cl; } 771 void setEnclosingClass(AbstractMetaClass *cl) { m_enclosing_class = cl; }
763 772
764 QString package() const { return m_type_entry->javaPackage(); } 773 QString package() const { return m_type_entry->javaPackage(); }
773 bool inheritsFrom(const AbstractMetaClass *other) const; 782 bool inheritsFrom(const AbstractMetaClass *other) const;
774 783
775 void setForceShellClass(bool on) { m_force_shell_class = on; } 784 void setForceShellClass(bool on) { m_force_shell_class = on; }
776 bool generateShellClass() const; 785 bool generateShellClass() const;
777 786
778 bool hasVirtualSlots() const { return m_has_virtual_slots; } 787 bool hasVirtualSlots() const { return m_has_virtual_slots; }
779 bool hasVirtualFunctions() const { return !isFinal() && m_has_virtuals; } 788 bool hasVirtualFunctions() const { return !isFinal() && m_has_virtuals; }
789 bool hasVirtualDestructor() const { return m_has_virtual_destructor; }
790 bool setHasVirtualDestructor(bool value) { m_has_virtual_destructor = value; }
780 bool hasProtectedFunctions() const; 791 bool hasProtectedFunctions() const;
781 792
782 QList<TypeEntry *> templateArguments() const { return m_template_args; } 793 QList<TypeEntry *> templateArguments() const { return m_template_args; }
783 void setTemplateArguments(const QList<TypeEntry *> &args) { m_template_args = args; } 794 void setTemplateArguments(const QList<TypeEntry *> &args) { m_template_args = args; }
784 795
841 const AbstractMetaClass *templateBaseClass() const { return m_template_base_class; } 852 const AbstractMetaClass *templateBaseClass() const { return m_template_base_class; }
842 void setTemplateBaseClass(const AbstractMetaClass *cls) { m_template_base_class = cls; } 853 void setTemplateBaseClass(const AbstractMetaClass *cls) { m_template_base_class = cls; }
843 854
844 void setTypeAlias(bool typeAlias) { m_is_type_alias = typeAlias; } 855 void setTypeAlias(bool typeAlias) { m_is_type_alias = typeAlias; }
845 bool isTypeAlias() const { return m_is_type_alias; } 856 bool isTypeAlias() const { return m_is_type_alias; }
857
858 bool isPolymorphic();
846 859
847 const QStringList &depends() { return m_type_entry->depends(); } 860 const QStringList &depends() { return m_type_entry->depends(); }
848 861
849 bool needsConversionFunc; 862 bool needsConversionFunc;
850 private: 863 private:
855 uint m_has_virtual_slots : 1; 868 uint m_has_virtual_slots : 1;
856 uint m_has_nonprivateconstructor : 1; 869 uint m_has_nonprivateconstructor : 1;
857 uint m_functions_fixed : 1; 870 uint m_functions_fixed : 1;
858 uint m_has_public_destructor : 1; 871 uint m_has_public_destructor : 1;
859 uint m_force_shell_class : 1; 872 uint m_force_shell_class : 1;
873 uint m_has_virtual_destructor : 1;
860 uint m_has_hash_function : 1; 874 uint m_has_hash_function : 1;
861 uint m_has_equals_operator : 1; 875 uint m_has_equals_operator : 1;
862 uint m_has_clone_operator :1; 876 uint m_has_clone_operator :1;
863 uint m_is_type_alias : 1; 877 uint m_is_type_alias : 1;
864 uint m_reserved : 19; 878 uint m_reserved : 19;