OCILIB (C and C++ Driver for Oracle)  4.7.5
Open source and cross platform Oracle Driver delivering efficient access to Oracle databases.
Loading...
Searching...
No Matches
ocilib::Object Class Reference

Object identifying the SQL data type OBJECT. More...

#include <types.hpp>

Inherits ocilib::core::HandleHolder< OCI_Object * >, and ocilib::core::Streamable.

Public Types

enum  ObjectTypeValues { Persistent = OCI_OBJ_PERSISTENT , Transient = OCI_OBJ_TRANSIENT , Value = OCI_OBJ_VALUE }
 Object Type enumerated values. More...
 
typedef core::Enum< ObjectTypeValuesObjectType
 Object Type.
 

Public Member Functions

 Object ()
 Create an empty null Object instance.
 
 Object (const TypeInfo &typeInfo)
 Parametrized constructor.
 
bool IsAttributeNull (const ostring &name) const
 Check if an object attribute is null.
 
void SetAttributeNull (const ostring &name)
 Set the given object attribute to null.
 
TypeInfo GetTypeInfo () const
 Return the TypeInfo object describing the object.
 
Reference GetReference () const
 Creates a reference on the current object.
 
ObjectType GetType () const
 Return the type of the given object.
 
template<class T >
Get (const ostring &name) const
 Return the given object attribute value.
 
template<class T >
void Get (const ostring &name, T &value) const
 Assign the given value with the given object attribute value.
 
template<class T >
void Get (const ostring &name, Collection< T > &value) const
 Assign the given collection with the given object attribute value of type collection.
 
template<class T >
void Set (const ostring &name, const T &value)
 Set the given object attribute value.
 
Object Clone () const
 Clone the current instance to a new one performing deep copy.
 
ostring ToString () const override
 return a string representation of the current object
 

Detailed Description

Object identifying the SQL data type OBJECT.

This class wraps the OCILIB object handle OCI_Object and its related methods

Definition at line 4664 of file types.hpp.

Member Typedef Documentation

◆ ObjectType

Object Type.

Possible values are Object::ObjectTypeValues

Definition at line 4698 of file types.hpp.

Member Enumeration Documentation

◆ ObjectTypeValues

Object Type enumerated values.

Enumerator
Persistent 

The object is persistent in the database

Transient 

The object is Transient

Value 

The object is a value member of another object

Definition at line 4681 of file types.hpp.

Constructor & Destructor Documentation

◆ Object() [1/2]

ocilib::Object::Object ( )
inline

Create an empty null Object instance.

Definition at line 32 of file Object.hpp.

◆ Object() [2/2]

ocilib::Object::Object ( const TypeInfo typeInfo)
inline

Parametrized constructor.

Parameters
typeInfo- type info descriptor

Definition at line 36 of file Object.hpp.

References ocilib::core::Check(), ocilib::TypeInfo::GetConnection(), and OCI_ObjectCreate().

Member Function Documentation

◆ IsAttributeNull()

bool ocilib::Object::IsAttributeNull ( const ostring name) const
inline

Check if an object attribute is null.

Parameters
name- Attribute name

Definition at line 60 of file Object.hpp.

References ocilib::core::Check(), and OCI_ObjectIsNull().

◆ SetAttributeNull()

void ocilib::Object::SetAttributeNull ( const ostring name)
inline

Set the given object attribute to null.

Parameters
name- Attribute name

Definition at line 65 of file Object.hpp.

References ocilib::core::Check(), and OCI_ObjectSetNull().

◆ GetTypeInfo()

TypeInfo ocilib::Object::GetTypeInfo ( ) const
inline

Return the TypeInfo object describing the object.

Definition at line 70 of file Object.hpp.

References ocilib::core::Check(), OCI_ObjectGetTypeInfo(), and OCI_TypeInfoGetConnection().

Referenced by Clone(), and GetReference().

◆ GetReference()

Reference ocilib::Object::GetReference ( ) const
inline

Creates a reference on the current object.

Definition at line 83 of file Object.hpp.

References ocilib::core::Check(), ocilib::TypeInfo::GetConnection(), GetTypeInfo(), OCI_ObjectGetSelfRef(), and OCI_RefCreate().

◆ GetType()

Object::ObjectType ocilib::Object::GetType ( ) const
inline

Return the type of the given object.

Definition at line 95 of file Object.hpp.

References ocilib::core::Check(), and OCI_ObjectGetType().

◆ Get() [1/3]

template<class T >
T ocilib::Object::Get ( const ostring name) const

Return the given object attribute value.

Template Parameters
T- C++ object type to retrieve
Parameters
name- Attribute name
Note
Specialized version of this template function are provided for all supported types

Definition at line 233 of file Object.hpp.

References ocilib::core::Check(), and OCI_ObjectGetColl().

◆ Get() [2/3]

template<class T >
void ocilib::Object::Get ( const ostring name,
T &  value 
) const

Assign the given value with the given object attribute value.

Template Parameters
T- C++ object type to retrieve
Parameters
name- Attribute name
value- value to assign
Note
Specialized version of this template function are provided for all supported types

◆ Get() [3/3]

template<class T >
void ocilib::Object::Get ( const ostring name,
Collection< T > &  value 
) const

Assign the given collection with the given object attribute value of type collection.

Template Parameters
T- C++ object type of the collection to retrieve
Parameters
name- Attribute name
value- value to assign
Note
Specialized version of this template function are provided for all supported types

◆ Set()

template<class T >
void ocilib::Object::Set ( const ostring name,
const T &  value 
)

Set the given object attribute value.

Template Parameters
T- C++ object type to set
Parameters
name- Attribute name
value- Attribute value
Note
Specialized version of this template function are provided for all supported types

Definition at line 368 of file Object.hpp.

References ocilib::core::Check(), and OCI_ObjectSetColl().

◆ Clone()

Object ocilib::Object::Clone ( ) const
inline

Clone the current instance to a new one performing deep copy.

Definition at line 51 of file Object.hpp.

References ocilib::core::Check(), GetTypeInfo(), and OCI_ObjectAssign().

◆ ToString()

ostring ocilib::Object::ToString ( ) const
inlineoverridevirtual

return a string representation of the current object

Implements ocilib::core::Streamable.

Definition at line 373 of file Object.hpp.

References ocilib::core::Check(), ocilib::core::MakeString(), and OCI_ObjectToText().