Qore reflection Module  0.9.3
Qore::Reflection::AbstractVariant Class Reference

The abstract base class for Qore class variants. More...

Inheritance diagram for Qore::Reflection::AbstractVariant:
Qore::Reflection::AbstractMethodVariant Qore::Reflection::FunctionVariant Qore::Reflection::ConstructorMethodVariant Qore::Reflection::CopyMethodVariant Qore::Reflection::DestructorMethodVariant Qore::Reflection::NormalMethodVariant Qore::Reflection::PseudoMethodVariant Qore::Reflection::StaticMethodVariant

Public Member Methods

 constructor ()
 Throws an exception if called directly; this class can only be instantiated by builtin subclasses. More...
 
bool empty ()
 returns True if the variant has no code implementation; False if it does More...
 
list< stringgetCodeFlagList ()
 returns a list of strings of code flags describing the variant More...
 
int getCodeFlags ()
 returns a bitfield of code flags describing the variant More...
 
list< auto > getDefaultArgs ()
 returns a list of default arguments for parameters for the variant; if the variant has no parameters, an empty list is returned More...
 
int getDomain ()
 returns the functional domain of the variant (for builtin variants only) as a bitfield of Functional Domain Constants More...
 
list< stringgetDomainStringList ()
 returns a list of functional domain strings for the variant (for builtin variants only); an empty list is returned for user variants More...
 
AbstractReflectionFunction getFunction ()
 Returns the abstract function object that contains the variant. More...
 
list< stringgetModifierList ()
 returns a list of strings of modifiers describing the variant More...
 
int getModifiers ()
 returns a bitfield of modifiers describing the variant More...
 
list< stringgetParamNames ()
 returns a list of parameter variable name for the variant; if the variant has no parameters, an empty list is returned More...
 
string getParamString ()
 returns a string giving a list of the parameters of the variant, including types, variable names, and default values More...
 
list< TypegetParamTypes ()
 returns a list of parameter types for the variant; if the variant has no parameters, an empty list is returned More...
 
Type getReturnType ()
 returns the return type of the variant More...
 
string getReturnTypeString ()
 returns a string for the return type More...
 
hash< SourceLocationInfogetSourceLocation ()
 Returns the source location of the variant declaration. More...
 
bool hasBody ()
 returns True if the variant has a code implementation; False if not (i.e. it is empty) More...
 
bool isBuiltin ()
 returns True if the variant is a builtin variant More...
 
bool isEqual (AbstractVariant variant)
 Returns True if the variant passed as an argument is equal to the current object; False if not. More...
 
bool isInjected ()
 returns True if the function or method that the variant belongs to (and therefore the variant itself) has been injected as a dependency injection More...
 
bool isMethodVariant ()
 returns True if the variant is a method variant but not a pseudo-method variant More...
 
bool isPseudoMethodVariant ()
 returns True if the object is a pseudo-method variant More...
 
bool isUser ()
 returns True if the variant is a user variant More...
 
int numParams ()
 returns the number of parameters in the signature More...
 
string toString ()
 returns a string for the variant's signature including any modifiers ("synchronized", "private", etc), the return type, the class name (if any, without a namespace prefix and followed by "::"), and the function or method name followed by parameter types in parentheses More...
 

Detailed Description

The abstract base class for Qore class variants.

Restrictions:
Qore::PO_NO_REFLECTION

This class cannot be instantiated directly and also cannot be directly inherited by user-defined classes.

See also
AbstractMethod
Since
Qore 0.9.0

Member Function Documentation

◆ constructor()

Qore::Reflection::AbstractVariant::constructor ( )

Throws an exception if called directly; this class can only be instantiated by builtin subclasses.

Exceptions
ABSTRACTVARIANT-CONSTRUCTOR-ERRORthis exception is thrown if this class is constructed directly (also if directly inherited by user classes)

◆ empty()

bool Qore::Reflection::AbstractVariant::empty ( )

returns True if the variant has no code implementation; False if it does

Code Flags:
RET_VALUE_ONLY
Example:
bool b = v.isEmpty();
Returns
True if the variant has no code implementation; False if it does
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
Note
  • complementary to hasBody()
  • abstract method variants will return True here

◆ getCodeFlagList()

list<string> Qore::Reflection::AbstractVariant::getCodeFlagList ( )

returns a list of strings of code flags describing the variant

Code Flags:
RET_VALUE_ONLY
Example:
list<string> l = v.getCodeFlagList();
Returns
list of strings of code flags describing the variant; possible values are:
  • "NOOP": the variant has the CF_NOOP flag set
  • "USES_EXTRA_ARGS": the variant has the CF_USES_EXTRA_ARGS flag set
  • "CONSTANT": the variant has the CF_CONSTANT flag set
  • "DEPRECATED": the variant has the CF_DEPRECATED flag set
  • "RET_VALUE_ONLY": the variant has the CF_RET_VALUE_ONLY flag set
  • "RUNTIME_NOOP": the variant has the CF_RUNTIME_NOOP flag set
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
See also
getCodeFlags()

◆ getCodeFlags()

int Qore::Reflection::AbstractVariant::getCodeFlags ( )

returns a bitfield of code flags describing the variant

Code Flags:
CONSTANT
Example:
int i = v.getCodeFlags();
Returns
a bitfield of code flags describing the variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
See also
getCodeFlagList()

◆ getDefaultArgs()

list<auto> Qore::Reflection::AbstractVariant::getDefaultArgs ( )

returns a list of default arguments for parameters for the variant; if the variant has no parameters, an empty list is returned

Code Flags:
RET_VALUE_ONLY
Example:
list<auto> l = v.getDefaultArgs();
Returns
a list of default arguments for parameters for the variant; if the variant has no parameters, an empty list is returned
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getDomain()

int Qore::Reflection::AbstractVariant::getDomain ( )

returns the functional domain of the variant (for builtin variants only) as a bitfield of Functional Domain Constants

Code Flags:
RET_VALUE_ONLY
Example:
int i = v.getDomain();
Returns
the functional domain of the variant (for builtin variants only) as a bitfield of Functional Domain Constants
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
Note
user variants always return 0 here; a value is only returned by builtin variants

◆ getDomainStringList()

list<string> Qore::Reflection::AbstractVariant::getDomainStringList ( )

returns a list of functional domain strings for the variant (for builtin variants only); an empty list is returned for user variants

Code Flags:
RET_VALUE_ONLY
Example:
list<string> l = v.getDomainStringList();
Returns
a list of functional domain strings for the variant (for builtin variants only)
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
Note
user variants always return an empty list here

◆ getFunction()

AbstractReflectionFunction Qore::Reflection::AbstractVariant::getFunction ( )

Returns the abstract function object that contains the variant.

Code Flags:
RET_VALUE_ONLY
Example:
AbstractReflectionFunction f = v.getFunction();
Returns
the abstract function object that contains the variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getModifierList()

list<string> Qore::Reflection::AbstractVariant::getModifierList ( )

returns a list of strings of modifiers describing the variant

Code Flags:
RET_VALUE_ONLY
Example:
list<string> l = v.getModifierList();
Returns
list of strings of modifiers describing the variant; possible values are:
  • "abstract": the variant is abstract
  • "final": (only returned for method variants) the variant has the final flag set
  • "private": (only returned for method variants) gives the accessibility of the variant
  • "private:internal": (only returned for method variants) gives the accessibility of the variant
  • "public": for function variants, the variant has the module public flag set on the function, for method variants, this gives the accessibility of the variant
  • "static": (only returned for method variants) the variant is a static method variant
  • "synchronized": the variant is synchronized
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
See also
getModifiers()

◆ getModifiers()

int Qore::Reflection::AbstractVariant::getModifiers ( )

returns a bitfield of modifiers describing the variant

Code Flags:
RET_VALUE_ONLY
Example:
int i = v.getModifiers();
Returns
a bitfield of modifiers describing the variant; possible values are:
  • MC_ABSTRACT: the variant is abstract
  • MC_FINAL: the variant has the final flag set
  • MC_PRIVATE: (only returned for method variants) gives the accessibility of the variant
  • MC_PRIVATEINTERNAL: (only returned for method variants) gives the accessibility of the variant
  • MC_PUBLIC: for functions, the variant has the module public flag set on the class or the function (not related to any inheritance properties in a class hierarchy), for method variants, this gives the accessibility of the variant
  • MC_STATIC: the variant is a static method variant
  • MC_SYNCHRONIZED: the variant is synchronized
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
See also
getModifierList()

◆ getParamNames()

list<string> Qore::Reflection::AbstractVariant::getParamNames ( )

returns a list of parameter variable name for the variant; if the variant has no parameters, an empty list is returned

Code Flags:
RET_VALUE_ONLY
Example:
list<string> l = v.getParamNames();
Returns
a list of parameter variable name for the variant; if the variant has no parameters, an empty list is returned
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getParamString()

string Qore::Reflection::AbstractVariant::getParamString ( )

returns a string giving a list of the parameters of the variant, including types, variable names, and default values

Code Flags:
RET_VALUE_ONLY
Example:
string str = v.getParamString();
# ex: "int num = 0, *string label"
Returns
a string giving a list of the parameters of the variant, including types, variable names, and default values; an empty string is returned if the variant does not have any parameters
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getParamTypes()

list<Type> Qore::Reflection::AbstractVariant::getParamTypes ( )

returns a list of parameter types for the variant; if the variant has no parameters, an empty list is returned

Code Flags:
RET_VALUE_ONLY
Example:
list<Type> l = v.getParamTypes();
Returns
a list of parameter types for the variant; if the variant has no parameters, an empty list is returned
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getReturnType()

Type Qore::Reflection::AbstractVariant::getReturnType ( )

returns the return type of the variant

Code Flags:
RET_VALUE_ONLY
Example:
Type t = v.getReturnType();
Returns
the return type of the variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getReturnTypeString()

string Qore::Reflection::AbstractVariant::getReturnTypeString ( )

returns a string for the return type

Code Flags:
RET_VALUE_ONLY
Example:
string str = v.getReturnTypeString();
# ex: "int"
Returns
a string for the return type
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ getSourceLocation()

hash<SourceLocationInfo> Qore::Reflection::AbstractVariant::getSourceLocation ( )

Returns the source location of the variant declaration.

Code Flags:
RET_VALUE_ONLY
Example:
hash<SourceLocationInfo> loc = v.getSourceLocation();
Returns
the source location of the variant declaration
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ hasBody()

bool Qore::Reflection::AbstractVariant::hasBody ( )

returns True if the variant has a code implementation; False if not (i.e. it is empty)

Code Flags:
RET_VALUE_ONLY
Example:
bool b = v.hasBody();
Returns
True if the variant has a code implementation; False if not (i.e. it is empty)
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
Note
  • complementary to empty()
  • abstract method variants will return False here

◆ isBuiltin()

bool Qore::Reflection::AbstractVariant::isBuiltin ( )

returns True if the variant is a builtin variant

Code Flags:
RET_VALUE_ONLY
Example:
bool b = v.isBuiltin();
Returns
True if the variant is a builtin variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
Note
complementary to isUser()

◆ isEqual()

bool Qore::Reflection::AbstractVariant::isEqual ( AbstractVariant  variant)

Returns True if the variant passed as an argument is equal to the current object; False if not.

Code Flags:
CONSTANT
Example:
bool b = v1.isEqual(v2);
Parameters
variantthe variant to check with the current object for equality
Returns
True if the variant object passed as an argument is equal to the current object; False if not
Note
if this method is called on variants from user classes created from the same source code but in different Program containers, it will return False

◆ isInjected()

bool Qore::Reflection::AbstractVariant::isInjected ( )

returns True if the function or method that the variant belongs to (and therefore the variant itself) has been injected as a dependency injection

Code Flags:
RET_VALUE_ONLY
Example:
bool b = v.isInjected();
Returns
True if the function or method that the variant belongs to (and therefore the variant itself) has been injected as a dependency injection
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ isMethodVariant()

bool Qore::Reflection::AbstractVariant::isMethodVariant ( )

returns True if the variant is a method variant but not a pseudo-method variant

Code Flags:
RET_VALUE_ONLY
Example:
bool b = v.isMethodVariant();
Returns
True if the variant is a method variant but not a pseudo-method variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ isPseudoMethodVariant()

bool Qore::Reflection::AbstractVariant::isPseudoMethodVariant ( )

returns True if the object is a pseudo-method variant

Code Flags:
RET_VALUE_ONLY
Example:
bool b = f.isPseudoMethodVariant();
Returns
True if the object is a pseudo-method variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ isUser()

bool Qore::Reflection::AbstractVariant::isUser ( )

returns True if the variant is a user variant

Code Flags:
RET_VALUE_ONLY
Example:
bool b = v.isUser();
Returns
True if the variant is a user variant
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed
Note
complementary to isBuiltin()

◆ numParams()

int Qore::Reflection::AbstractVariant::numParams ( )

returns the number of parameters in the signature

Code Flags:
RET_VALUE_ONLY
Example:
int n = v.numParams();
Returns
the number of parameters in the signature
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

◆ toString()

string Qore::Reflection::AbstractVariant::toString ( )

returns a string for the variant's signature including any modifiers ("synchronized", "private", etc), the return type, the class name (if any, without a namespace prefix and followed by "::"), and the function or method name followed by parameter types in parentheses

Code Flags:
RET_VALUE_ONLY
Example:
string str = v.toString();
Returns
a string for the variant's signature including any modifiers, the return type, the class name (if any, without a namespace prefix and followed by "::"), and the function or method name followed by parameter types in parentheses
Exceptions
PROGRAM-ERRORthrown if the Program object holding the function or method has been destroyed

The documentation for this class was generated from the following file: