Up Previous Next Title Page Index Contents

1.1.2 Properties and non-properties

The concepts of GOPPRR can be divided into two categories: properties and non-properties. Figure 1–2 illustrates the division. Graph, Object, Port, Role and Relationship can all have properties. In MetaEdit+ these properties are created, edited and viewed through property dialogs. The property dialogs work similarly in all tools of MetaEdit+: to test a property dialog open it by selecting Properties... from any non-property pop-up menu.

Figure 1–2. Properties and non-properties.

Data type

The property has two additional characteristics: it has a data type and its values can be shared to other similar properties. Data types of the properties include:
String (e.g. name of a state)
Number (e.g. thread of execution of message)
Boolean (e.g. primary key?)
Text (e.g. documentation field)
Creation Timestamp (the time the property was created – essentially the creation time of the non-property the property belongs to)
Collection of items (e.g. attributes of a class)
Non-property (e.g. an attribute in an attribute list of a class may itself be an object).
Property types of data type String can further specify which widget is used in property dialogs for inputting their values. The widget type is one of the following:
Input Field: a normal one-line text entry field (the default).
Fixed List: a pull-down list of values: only values in the list are allowed.
Overridable List: a pull-down list of values: the user can also type a value which is not in the list.
Editable List: a pull-down list of values: the user can also type a value which is not in the list. Such new values are added to the list for this property type in this project.
External Element: a one-line text entry field, whose values are intended to refer to external resources like file names or URLs. These external files can be opened with the Execute command from the widget’s pop-up menu.
SOAP Fixed List: a pull-down list of values that has been fetched from an external source via a SOAP call.
Radio Button Set: a list of values that will appear as a set of radio buttons.
For the list and radio button widgets, the list of possible values is specified in the property type.

For collection data types, the property type must also specify the type of the contents, which can be either a simple string or a non-property type. Similarly property types with non-property data type must specify which non-property they may contain. In this way complex property types can be built up. An example of a complex property can be found from object type Class in object-oriented methods because it has a collection of attributes and methods as properties and each attribute or method itself is an object, and as such can have one or more properties. In principle these new properties could be again complex ones and therefore they could have their own properties and so on. MetaEdit+ does not limit the number of complex properties or their depth in any way: you can even have cyclic structures.

Up Previous Next Title Page Index Contents