Expression
Expression that can be evaluated for any object.
Name | Description | Type |
---|---|---|
type | The type of the expression (e.g. property value or status value). | ExpressionType |
data | NOTE: These two members store the indirection levels of this expression. Normally, when an expression that does not have indirection levels is evaluated for an object, only the data of the object is needed for the evaluation. For example, property value expression "Project" is evaluated from the Project property of the object. When one or more indirection levels are present, these indirection levels (links) need to be followed in order to evaluate the expression. For example, expression "Project.Customer.Country" first needs to determine the Project property of the object, then the Customer property of the project, and finally the Country property of the customer. In this specification, "Project.Customer" is defined as the two indirection levels of the expression. They are stored in this order in the array of MF_PropertyDefOrObjectType structs. The Country part is specified normally as if no indirection levels would be present. | ExpressionUnion |
indirection_levels | The indirection levels. | IndirectionLevel[] |
Example
{
"type": 7 /* Enum: ExpressionType */,
"data": {
"property_value": {
"property_def": 0,
"data_function": {
"data_function": 9 /* Enum: DataFunction */,
"data": {
"year": {},
"month": {},
"year_and_month": {},
"date": {},
"days_from": {},
"days_to": {},
"integer_segment": {
"segment_size": 0
},
"left_characters": {
"count": 0
},
"initial_character_group": {
"lcid": 0
}
}
},
"parent_child_behavior": 2 /* Enum: ParentChildBehavior */
},
"id_segment": {
"segment_size": 0
},
"status_value": {
"type": 16 /* Enum: StatusType */,
"data_function": {} /* DataFunctionCall */
},
"file_value": {
"type": 8 /* Enum: FileValueType */
},
"typed_value": {
"datatype": 15 /* Enum: Datatype */,
"value_list": 0,
"data_function": {} /* DataFunctionCall */,
"parent_child_behavior": {}
},
"any_field": {
"options": {
"all": false,
"use_stemming": false,
"search_all_words": false,
"search_any_words": false,
"search_metadata": false,
"search_filedata": false
}
},
"permissions": {
"type": 6 /* Enum: PermissionsExpressionType */
}
},
"indirection_levels": [] /* Array of IndirectionLevel */
}