The DATA_CRITERIA
definition defines the criteria used to assign
an object type to a file or directory.
You can use the criteria show in Table 13–3 for object typing.
Table 13–3 DATA_CRITERIA Criteria and Descriptions
You can use more than one criteria for a data type. However, you should not use the NAME_PATTERN and PATH_PATTERN criteria in the same data type.
Use the NAME_PATTERN field to specify the naming requirement. The field value can include the following wildcards:
?—matches any single character
*—matches any sequence of characters (including a null string)
[cc…]—matches any of the characters (c) enclosed in brackets
[c–c]—matches any of the characters in the range c through c
The following data type definition creates a data type based on the file name. The file name must begin with QS and end with .doc.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION This file contains a document for the QS \ project. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
The following definition creates a data type for directories named Demo_n where n is 0 through 9.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION This is a directory. Double-click to open it. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
Use the PATH_PATTERN field to specify the path. You can use the same wildcard characters as with NAME_PATTERN.
For example, the following data type uses a criteria based on path.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION Graphics file for the QS project. Double-click the \ icon to see the graphic. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
To create a data type based on both file name and location, include the name in the PATH_PATTERN value. You cannot use both NAME_PATTERN and PATH_PATTERN in the same criteria definition.
The QS_Source_Files data type defined below applies to all files named appn.c, where n= 1 through 9, located in subdirectories of */projects/QS.
DATA_ATTRIBUTES QS_Source_Files { … } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
The following data type applies to all files in the directory /doc/project1 named chnn.xxx where n is 0 through 9, and xxx is any three-character file- name suffix.
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION Chapter file for the project document. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
Use the MODE field to specify the required permissions.
Mode criteria are usually used in combination with name-based, location-based, or content-based data typing. They allow you to limit a data type to a file or directory, or to specify the required read, write, and execute permissions.
The MODE field can include logical operators (Table 13–4) and characters (Table 13–5).
Table 13–4 MODE Field Logical Operators and Descriptions
Operator |
Description |
---|---|
! | |
& | |
| |
Table 13–5 MODE Field Characters and Descriptions
Character |
Description |
---|---|
The data type applies only to files |
|
The data type applies only to directories |
|
r |
The file is readable by any user |
The file is writable by any user |
|
The file is executable by any user |
|
The file is a link |
The default for a particular mode is that the mode does not matter.
The following mode fields restrict the data type as described:
f&!w—read-only files
!w—read-only files and directories
f&x—executable files
f&r&x—files that are both writable and executable
x|!w—files that are executable or read-only
The following data type definition creates an data type for read-only, non-executable files whose file names follow the naming convention *.doc. It assumes that a View action has been defined for the data type.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION This document is not writable. Double- \ clicking runs your editor with a \ read-only copy of the file. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
Use the CONTENT field to specify data typing based on the content of the file. Content-based data typing can be used in combination with name- or location-based data typing.
The typing can be based on either string or numeric content for files. The first byte in the file is numbered 0.
For number content of a file, use the syntax:
CONTENT starting_byte byte number CONTENT starting_byte short number CONTENT starting_byte long number
For the contents of a directory, use the syntax:
CONTENT 0 filename "file_name"
Use standard C notation for octal (leading o) and hexidecimal (leading oX) numbers.
Use of content-based data typing will result in slower system performance. Wherever possible, use name- and location-based typing instead.
For example, the following data type, Writable_Wingz, applies to all files with write permission containing the string WNGZ at the beginning of the file.
DATA_ATTRIBUTES Writable_Wingz { … } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
You can create a data type with several independent criteria—that is, the file is assigned to the data type if it meets either (or both) of the criteria.
Create the DATA_ATTRIBUTES
definition for the data type.
Create a DATA_CRITERIA
definition
for each criteria.
Use the DATA_ATTRIBUTES_NAME field to connect
each criteria to the same DATA_ATTRIBUTES
definition.
For example, the following definitions create the Mif data type. Typing is based on name or content.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }