FTValueDictionary Derived Type

type, public, extends(FTDictionary) :: FTValueDictionary


Components

Type Visibility Attributes Name Initial
integer, public :: numberOfEntries
logical, public :: isCaseSensitive
type(FTLinkedList), public, DIMENSION(:), POINTER :: entries => NULL()

Type-Bound Procedures

procedure, public, non_overridable :: copy => copyFTObject

  • private function copyFTObject(self) result(copy)

    Base class implementation of the assignment function. Call this from within any subclasses copy assignment function. All FTObject's implementation does is set the reference count to one, implying no additional ownership to the caller that is creating the copy.


    Arguments

    Type IntentOptional Attributes Name
    class(FTObject), intent(in) :: self

    Return Value class(FTObject), POINTER

procedure, public, non_overridable :: retain => retainFTObject

  • public subroutine retainFTObject(self)

    Retain increases the reference count by one and implies ownership to the caller. ### Usage: CALL obj\ % retain()

    Arguments

    Type IntentOptional Attributes Name
    class(FTObject) :: self

procedure, public, non_overridable :: isUnreferenced

  • public function isUnreferenced(self)

    Owners of objects should call isUnreferenced after releasing a pointer object. If true, the object should be deallocated and then set to point to NULL()

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FTObject) :: self

    Return Value logical

procedure, public, non_overridable :: refCount

  • public function refCount(self)

    Returns the reference count for the object. Normally this is done only for debugging purposes.

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FTObject) :: self

    Return Value integer

procedure, public :: initWithSize

  • public subroutine initWithSize(self, sze)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self
    integer, intent(in) :: sze

procedure, public :: init

  • public subroutine init(self)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self

procedure, public :: setCaseSensitive

procedure, public :: caseSensitive

  • public function caseSensitive(self)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self

    Return Value logical

procedure, public :: allKeys => AllKeys

  • public function AllKeys(self) result(keys)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self

    Return Value character(len=FTDICT_KWD_STRING_LENGTH), POINTER, (:)

procedure, public :: allObjects => AllObjects

procedure, public :: destruct => destructFTDictionary

procedure, public :: addObjectForKey

  • public subroutine addObjectForKey(self, object, key)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self
    class(FTObject), POINTER :: object
    character(len=*) :: key

procedure, public :: removeObjectForKey

procedure, public :: description => FTDictionaryDescription

  • public function FTDictionaryDescription(self)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self

    Return Value character(len=description_character_length)

procedure, public :: printDescription => printFTDictionaryDescription

procedure, public :: objectForKey

  • public function objectForKey(self, key)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self
    character(len=*) :: key

    Return Value class(FTObject), POINTER

procedure, public :: containsKey

  • public function containsKey(self, key) result(r)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self
    character(len=*) :: key

    Return Value logical

procedure, public :: COUNT

  • public function COUNT(self)

    Arguments

    Type IntentOptional Attributes Name
    class(FTDictionary) :: self

    Return Value integer

generic, public :: addValueForKey => addRealValueForKey, addDoublePrecisionValueForKey, addIntegerValueForKey, addStringValueForKey, addLogicalValueForKey

generic, public :: addValueForKey => addQuadValueForKey

  • public subroutine addQuadValueForKey(self, r, key)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    real(kind=SELECTED_REAL_KIND(QUAD_DIGITS)) :: r
    character(len=*) :: key

procedure, public :: realValueForKey

  • public function realValueForKey(self, key)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*) :: key

    Return Value real

procedure, public :: doublePrecisionValueForKey

procedure, public :: quadValueForKey

  • public function quadValueForKey(self, key)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*) :: key

    Return Value real(kind=selected_real_kind(quad_digits))

procedure, public :: integerValueForKey

procedure, public :: stringValueForKey

  • public function stringValueForKey(self, key, requestedLength)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*) :: key
    integer :: requestedLength

    Return Value character(len=requestedLength)

procedure, public :: logicalValueForKey

generic, public :: getValueOrDefault => getRealValueOrDefault, getDoublePrescisionValueOrDefault, getIntegerValueOrDefault, getLogicalValueOrDefault

  • public function getRealValueOrDefault(self, key, default) result(val)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*), intent(in) :: key
    real, intent(in) :: default

    Return Value real

  • public function getDoublePrescisionValueOrDefault(self, key, default) result(val)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*), intent(in) :: key
    double precision, intent(in) :: default

    Return Value double precision

  • public function getIntegerValueOrDefault(self, key, default) result(val)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*), intent(in) :: key
    integer, intent(in) :: default

    Return Value integer

  • public function getLogicalValueOrDefault(self, key, default) result(val)

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self
    character(len=*), intent(in) :: key
    logical, intent(in) :: default

    Return Value logical

procedure, public :: className => valueDictionaryClassName

  • public function valueDictionaryClassName(self) result(s)

    Class name returns a string with the name of the type of the object

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FTValueDictionary) :: self

    Return Value character(len=CLASS_NAME_CHARACTER_LENGTH)