Class Class Reference

#include <reflectionbase.h>

Inheritance diagram for Class:

Detailed Description

Class represents a C++ class. It may contain member functions and member classes. Also if the class is an interface (in the sense of the MAXON API), the corresponding interface information can be obtained from Class.

Public Member Functions

const MAXON_METHOD InterfaceReference * GetInterface () const
 
const MAXON_METHOD NonvirtualInterfaceReference * GetNonvirtualInterface () const
 
MAXON_METHOD Block< const Class *const > GetBaseClasses () const
 
const MAXON_METHOD ClassGetStaticInterface () const
 
- Public Member Functions inherited from Container
MAXON_METHOD Block< const Class *const > GetClasses () const
 
const MAXON_METHOD ClassFindClass (const Id &name) const
 
MAXON_METHOD Block< const Function *const > GetFunctions () const
 
MAXON_METHOD Result< const Function * > FindFunction (const Id &name) const
 
MAXON_METHOD Result< void > FindFunctions (const Id &name, const ValueReceiver< const Function * > &result) const
 
- Public Member Functions inherited from Member
enum maxon::reflection::Member::KIND MAXON_ENUM_FLAGS_CLASS (KIND)
 
const MAXON_METHOD ContainerGetEnclosingContainer () const
 
MAXON_METHOD KIND GetKind () const
 
const MAXON_METHOD IdGetSimpleName () const
 
const MAXON_METHOD IdGetId () const
 
MAXON_METHOD String ToString (const FormatStatement *fs=nullptr) const
 

Static Public Member Functions

static const ClassFind (const Id &memberId)
 
template<typename INTERFACE >
static const ClassFindInterface ()
 
static const ClassFindInterface (const NonvirtualInterfaceReference *i)
 
static const ClassFindInterface (const InterfaceReference *i)
 
- Static Public Member Functions inherited from Container
static const ContainerFind (const Id &memberId)
 
- Static Public Member Functions inherited from Member
static MAXON_METHOD Result< BoolGetMembers (const ValueReceiver< const Member & > &members)
 
static const MAXON_METHOD MemberFind (const Id &memberId)
 

Private Member Functions

 MAXON_INTERFACE_NONVIRTUAL_DERIVED (Class, MAXON_REFERENCE_NONE, "net.maxon.reflection.interface.class")
 

Additional Inherited Members

- Public Types inherited from Member
enum  KIND {
  PACKAGE,
  CLASS,
  FUNCTION,
  INSTANCE_FUNCTION,
  CONST_INSTANCE_FUNCTION,
  CONTAINER_TEST,
  FUNCTION_TEST
}
 

Member Function Documentation

◆ MAXON_INTERFACE_NONVIRTUAL_DERIVED()

MAXON_INTERFACE_NONVIRTUAL_DERIVED ( Class  ,
MAXON_REFERENCE_NONE  ,
"net.maxon.reflection.interface.class"   
)
private

◆ GetInterface()

const MAXON_METHOD InterfaceReference* GetInterface ( ) const

Returns a corresponding InterfaceReference if this Class is virtual interface, otherwise nullptr. If the interface has static methods, also GetNonvirtualInterface() returns a valid pointer which points to the NonvirtualInterfaceReference for the static methods.

Returns
A InterfaceReference for this Class, or nullptr if this is no virtual interface.

◆ GetNonvirtualInterface()

const MAXON_METHOD NonvirtualInterfaceReference* GetNonvirtualInterface ( ) const

Returns a corresponding NonvirtualInterfaceReference if this Class is a non-virtual interface, or if this Class is a virtual interface with static methods. otherwise nullptr.

Returns
An NonvirtualInterfaceReference for this Class, or nullptr if there is no corresponding non-virtual interface.

◆ GetBaseClasses()

MAXON_METHOD Block<const Class* const> GetBaseClasses ( ) const

TODO: (Ole) Not yet supported.

◆ GetStaticInterface()

const MAXON_METHOD Class* GetStaticInterface ( ) const

Return a Class containing the static methods of this virtual interface, or nullptr is this Class isn't a virtual interface or has no static methods.

Returns
The Class for the static methods of this virtual interface, or nullptr.

◆ Find()

static const Class* Find ( const Id memberId)
static

Finds the class whose id is memberId. The id is the qualified name of the class with dot as separator, see Member::GetId(). If there is no class with the given memberId, nullptr is returned.

Parameters
[in]memberIdA member id for a class.
Returns
The class with the given memberId, or nullptr.

◆ FindInterface() [1/3]

static const Class* FindInterface ( )
static

Finds the Class object for a given non-virtual or virtual interface.

Template Parameters
INTERFACEThe interface class (such as StringInterface).
Returns
The Class object for the given interface, or nullptr if no reflection was registered for that interface.

◆ FindInterface() [2/3]

static const Class* FindInterface ( const NonvirtualInterfaceReference *  i)
static

Finds the Class object for a given non-virtual interface reference.

Parameters
[in]iThe interface.
Returns
The Class object for the given interface, or nullptr if no reflection was registered for that interface or #i was nullptr.

◆ FindInterface() [3/3]

static const Class* FindInterface ( const InterfaceReference *  i)
static

Finds the Class object for a given virtual interface reference.

Parameters
[in]iThe interface.
Returns
The Class object for the given interface, or nullptr if no reflection was registered for that interface or #i was nullptr.