Info types
Focus-n types represent the internal structure of system and user objects. FIG. 12 shows the Type structure 1200, which is a particular instance of a system object, containing an Object_ID 1220 that indicates the unique identifier of the type (<1000 for system types, >1000 for user types), a Type_ID 1221 equals to 1 (the type identifier for type objects), a Lang_ID 1222 that indicates the language of the Name 1223 and Description 1224 of the type, and other fields composed by the Ancestor_ID 1225, which is the identifier of the parent type of this type (for derivation purposes), the {list of fields} 1230, that contains an array of system objects describing the fields of the type, and the Computer code (reference) 1240, which provides a means for locating the computer code of a Java class (typically, a “.jar” file) that generates the object-oriented instances for representing the user objects of this type (not intended for types of system objects).
FIG. 12 also shows the Field structure 1210, which is a particular instance of a system object, containing an Object_ID 1250 that indicates the unique identifier of the field, a Type_ID 1251 equals to 2 (the type identifier for field objects), a Lang_ID 1252 that indicates the language of the Name 1253 and Description 1254 of the field, a Parent_Type 1255 for identifying the type that contains the field, and {other fields} 1260 for specifying the data attributes of the field (char, boolean, integer, string, array, object, etc.). Moreover, the double arrow with the label [1..n] 1270 indicates that the list of fields of the type structure 1230 contains several references (at least one) to field objects.
Any Java class implementing a user object must provide a zero-parameters constructor and the following public methods:
result getField(fieldID);
result setField(fieldID, value);
The getField() method returns, as the result, the value of a data or metadata field, identified by the parameter fieldID, of the user object. The setField() method sets the value of a data or metadata field of the user object, according to the parameters fieldID and value, and returns as the result an error code to indicate whether that field admits the passed value and eventually the reason for rejection. With these methods, other computer code external to type classes will be able to interact with the contents of user objects.
The proposed strategies allow to manage all Focus-n types (system or user), including the type and field objects themselves. In this manner, the inventive system is able to show the list of names and descriptions of the installed types, as well as the corresponding fields. Further, the user may command the inventive system to incorporate new types or delete obsolete types, as well as associate software components, without the need of rebuilding the whole Focus-n application, being those types created either by the vendor of the inventive system or by third-party developers.