Qore reflection Module  0.9.16
Qore::Reflection::TypedHash Class Reference

The base class for Qore typed hashes (hashdecls) More...

Public Member Methods

 constructor (string path)
 Creates the object from the typed hash (hashdecl) name or namespace-justified path as a string. More...
 
hash< auto > doCast (hash< auto > h)
 Returns a typed hash for the given hash, if possible. More...
 
TypedHashMember getMember (string name)
 returns the requested member or throws an exception if the member is not defined in the typed hash (hashdecl) More...
 
list< TypedHashMembergetMembers ()
 returns a list of all declared typed hash (hashdecl) members in declaration order More...
 
*string getModuleName ()
 Returns the module name providing the typed hash or nothing if the typed hash was not provided by a module. More...
 
string getName ()
 returns the typed hash (hashdecl) name More...
 
Namespace getNamespace ()
 Returns the namespace for the typed hash. More...
 
Type getOrNothingType ()
 Returns the "or nothing" type object for this typed hash. More...
 
string getPathName ()
 returns the typed hash's (hashdecl's) full namespace-justified path name More...
 
hash< SourceLocationInfo > getSourceLocation ()
 Returns the source location of the typed hash (hashdecl) declaration. More...
 
Type getType ()
 Returns the type object for this typed hash. More...
 
bool isBuiltin ()
 returns True if the typed hash (hashdecl) is a builtin typed hash More...
 
bool isEqual (TypedHash th)
 Returns True if the typed hash passed as an argument is equal to the current object; False if not. More...
 
bool isUser ()
 returns True if the typed hash (hashdecl) is a user typed hash More...
 

Static Public Member Methods

static list< TypedHashfindAllRegex (string pattern, *int re_opts)
 Returns a list of typed hashes (hashdecls) matching the regular expression pattern argument or an empty list if no typed hashes match. More...
 
static list< TypedHashfindAllRegex (Program pgm, string pattern, *int re_opts)
 Returns a list of typed hashes (hashdecls) matching the regular expression pattern argument or an empty list if no typed hashes match. More...
 
static TypedHash forName (string path)
 Returns a typed hash (hashdecl) object corresponding to the name or namespace-justified path provided as an argument. More...
 
static TypedHash forName (Program pgm, string path)
 Returns a typed hash (hashdecl) object corresponding to the name or namespace-justified path provided as an argument. More...
 

Detailed Description

The base class for Qore typed hashes (hashdecls)

Restrictions:
Qore::PO_NO_REFLECTION
Since
Qore 0.9.0

Member Function Documentation

◆ constructor()

Qore::Reflection::TypedHash::constructor ( string  path)

Creates the object from the typed hash (hashdecl) name or namespace-justified path as a string.

Example:
TypedHash th("::ARGV");
Parameters
paththe typed hash (hashdecl) name or namespace-justified path as a string
Exceptions
UNKNOWN-TYPED-HASHcannot find a typed hash (hashdecl) with the given name or path
ENCODING-CONVERSION-ERRORthis exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion
See also
forName()

◆ doCast()

hash<auto> Qore::Reflection::TypedHash::doCast ( hash< auto >  h)

Returns a typed hash for the given hash, if possible.

Parameters
hthe hash to convert
Exceptions
RUNTIME-TYPE-ERRORtypes are not compatible
Since
Qore 0.9.5

◆ findAllRegex() [1/2]

static list<TypedHash> Qore::Reflection::TypedHash::findAllRegex ( Program  pgm,
string  pattern,
*int  re_opts 
)
static

Returns a list of typed hashes (hashdecls) matching the regular expression pattern argument or an empty list if no typed hashes match.

Code Flags:
RET_VALUE_ONLY
Example:
# return all accessible typed hashes (hashdecls) that start with the letter "S"
list<TypedHash> l = TypedHash::findAllRegex(pgm, "^S");
Parameters
pgmthe Program object to search
patternthe regular expression pattern to match
re_optssee regex_constants for possible values
Returns
a list of typed hashes (hashdecls) matching the regular expression pattern argument or an empty list if no typed hashes match

◆ findAllRegex() [2/2]

static list<TypedHash> Qore::Reflection::TypedHash::findAllRegex ( string  pattern,
*int  re_opts 
)
static

Returns a list of typed hashes (hashdecls) matching the regular expression pattern argument or an empty list if no typed hashes match.

Code Flags:
RET_VALUE_ONLY
Example:
# return all accessible typed hashes (hashdecls) that start with the letter "S"
list<TypedHash> l = TypedHash::findAllRegex("^S");
Parameters
patternthe regular expression pattern to match
re_optssee regex_constants for possible values
Returns
a list of typed hashes (hashdecls) matching the regular expression pattern argument or an empty list if no typed hashes match

◆ forName() [1/2]

static TypedHash Qore::Reflection::TypedHash::forName ( Program  pgm,
string  path 
)
static

Returns a typed hash (hashdecl) object corresponding to the name or namespace-justified path provided as an argument.

Code Flags:
RET_VALUE_ONLY
Example:
TypedHash th = TypedHash::forName(pgm, "::ENV");
Parameters
pgmthe Program object to search
paththe typed hash (hashdecl) name or namespace-justified path as a string
Returns
a typed hash (hashdecl) object corresponding to the name or namespace-justified path provided as an argument
Exceptions
UNKNOWN-TYPED-HASHcannot find a typed hash (hashdecl) with the given name or path
ENCODING-CONVERSION-ERRORthis exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

◆ forName() [2/2]

static TypedHash Qore::Reflection::TypedHash::forName ( string  path)
static

Returns a typed hash (hashdecl) object corresponding to the name or namespace-justified path provided as an argument.

Code Flags:
RET_VALUE_ONLY
Example:
TypedHash th = TypedHash::forName("::ENV");
Parameters
paththe typed hash (hashdecl) name or namespace-justified path as a string
Returns
a typed hash (hashdecl) object corresponding to the name or namespace-justified path provided as an argument
Exceptions
UNKNOWN-TYPED-HASHcannot find a typed hash (hashdecl) with the given name or path
ENCODING-CONVERSION-ERRORthis exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

◆ getMember()

TypedHashMember Qore::Reflection::TypedHash::getMember ( string  name)

returns the requested member or throws an exception if the member is not defined in the typed hash (hashdecl)

Code Flags:
RET_VALUE_ONLY
Example:
TypedHashMember m = th.getMember(name);
Returns
the requested member or throws an exception if the member is not defined in the typed hash (hashdecl)
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash (hashdecl) has been destroyed
UNKNOWN-MEMBERif the requested member is not defined in the typed hash (hashdecl)
ENCODING-CONVERSION-ERRORthis exception could be thrown if the string argument is not in the default character encoding and an error occurs during encoding conversion

◆ getMembers()

list<TypedHashMember> Qore::Reflection::TypedHash::getMembers ( )

returns a list of all declared typed hash (hashdecl) members in declaration order

Code Flags:
RET_VALUE_ONLY
Example:
list<TypedHashMember> l = th.getMembers();
Returns
a list of all declared typed hash (hashdecl) members in declaration order
Exceptions
PROGRAM-ERRORthrown if the Program object holding the class has been destroyed

◆ getModuleName()

*string Qore::Reflection::TypedHash::getModuleName ( )

Returns the module name providing the typed hash or nothing if the typed hash was not provided by a module.

Code Flags:
RET_VALUE_ONLY
Example:
*string str = th.getModuleName();
Returns
the module name providing the typed hash or nothing if the typed hash was not provided by a module

◆ getName()

string Qore::Reflection::TypedHash::getName ( )

returns the typed hash (hashdecl) name

Code Flags:
RET_VALUE_ONLY
Example:
string name = th.getName();
Returns
the typed hash (hashdecl) name
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash (hashdecl) has been destroyed
See also
getPathName()

◆ getNamespace()

Namespace Qore::Reflection::TypedHash::getNamespace ( )

Returns the namespace for the typed hash.

Code Flags:
CONSTANT
Example:
Namespace ns = th.getNamespace();
Returns
the namespace for the typed hash

◆ getOrNothingType()

Type Qore::Reflection::TypedHash::getOrNothingType ( )

Returns the "or nothing" type object for this typed hash.

Code Flags:
RET_VALUE_ONLY
Example:
Type t = th.getOrNothingType();
Returns
the "or nothing" type object for this typed hash
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash has been destroyed
See also
getType()

◆ getPathName()

string Qore::Reflection::TypedHash::getPathName ( )

returns the typed hash's (hashdecl's) full namespace-justified path name

Code Flags:
RET_VALUE_ONLY
Example:
string name = th.getPathName();
Returns
the typed hash's (hashdecl's) full namespace-justified path name
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash (hashdecl) has been destroyed
See also
getName()

◆ getSourceLocation()

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

Returns the source location of the typed hash (hashdecl) declaration.

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

◆ getType()

Type Qore::Reflection::TypedHash::getType ( )

Returns the type object for this typed hash.

Code Flags:
RET_VALUE_ONLY
Example:
Type t = th.getType();
Returns
the type object for this typed hash
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash (hashdecl) has been destroyed
See also
getOrNothingType()

◆ isBuiltin()

bool Qore::Reflection::TypedHash::isBuiltin ( )

returns True if the typed hash (hashdecl) is a builtin typed hash

Code Flags:
RET_VALUE_ONLY
Example:
bool b = th.isBuiltin();
Returns
True if the typed hash (hashdecl) is a builtin typed hash
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash (hashdecl) has been destroyed
Note
complementary to isUser()

◆ isEqual()

bool Qore::Reflection::TypedHash::isEqual ( TypedHash  th)

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

Code Flags:
CONSTANT
Example:
bool b = th1.isEqual(th2);
Parameters
ththe typed hash (hashdecl) to check with the current object for equality
Returns
True if the object passed as an argument is equal to the current object; False if not
Note
if this method is called on user typed hashes (hashdecls) created from the same source code but in different Program containers, it will return False

◆ isUser()

bool Qore::Reflection::TypedHash::isUser ( )

returns True if the typed hash (hashdecl) is a user typed hash

Code Flags:
RET_VALUE_ONLY
Example:
bool b = th.isUser();
Returns
True if the typed hash (hashdecl) is a user typed hash
Exceptions
PROGRAM-ERRORthrown if the Program object holding the typed hash (hashdecl) has been destroyed
Note
complementary to isBuiltin()

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