Version 4 of TclOO Properties

Updated 2015-04-10 15:04:27 by sdw

This page describes an upcoming enhancement to TclOO: Property tracking. Please stay tuned.

The concept: Adding information that is tracked by class that allows the developer to embed data inside of classes

New tools:

info class property class

This method allows access to this class. Arguments that follow are the same as allowed by the "dict" command.

get field ?field...?

Return a value for a property, or die trying.

getnull field ?field...?

Return a value for a property, or an empty list if the value does not exist.

exists field ?field...?

Return true if a property exists

list field ?field...?

Return a list of keys below the level field ?field...?

set field ?field...? value

Add/modify a property

info object property object

This method provides objects access to the property database of their class. (Without the hassle of having to look up their class.) At present, it is read only.

get field ?field...?

Return a value for a property, or die trying.

getnull field ?field...?

Return a value for a property, or an empty list if the value does not exist.

exists field ?field...?

Return true if a property exists

list field ?field...?

Return a list of keys below the level field ?field...?

New Keywords:

The following keywords will be added to oo::define:

property field ?field...? value

Set a property from the class definition.

Usage:

This system was originally intended to provide a Tk option-like database for TclOO objects.

    # Dump the entire option dictionary
    set option_dict [info object [self] property get option]

    # Access a list of options
   set option_list [info object [self] property list option]

    # Check if an option exists
   set exists [info object [self] property exists option color]

    # Get the default value for color
   set color [info object [self] property getnull option color default]