Overview Schemas Index

ISO13584_EXPRESSIONS_SCHEMA (jsdai.SIso13584_expressions_schema)


FUNCTION used_functions
          (arg : expression) : SET [0:?] OF defined_function;

LOCAL
          result : SET OF defined_function := [];
END_LOCAL;

IF ('ISO13584_EXPRESSIONS_SCHEMA.DEFINED_FUNCTION' IN  TYPEOF(arg))  
THEN 
          RETURN ( [arg] ) ;
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.UNARY_NUMERIC_EXPRESSION' IN  
          TYPEOF (arg) 
THEN
          RETURN (used_functions (arg\unary_numeric_expression.operand));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.BINARY_NUMERIC_EXPRESSION' IN  
                    TYPEOF (arg) 
THEN
          RETURN (used_functions (arg\binary_numeric_expression.operands[1])
                    + used_functions (arg\binary_numeric_expression.operands[2]));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.MULTIPLE_ARITY_NUMERIC_EXPRESSION' IN                      TYPEOF (arg) 
THEN
          REPEAT i := 1 TO  SIZEOF  (
                              arg\multiple_arity_numeric_expression.operands);
                    result := result + used_functions (
                              arg\multiple_arity_numeric_expression.operands[i]);
          END_REPEAT;
          RETURN (result);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.UNARY_GENERIC_EXPRESSION' 
                    IN TYPEOF  (arg) 
THEN
          RETURN (used_functions (arg\unary_generic_expression.operand));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.BINARY_BOOLEAN_EXPRESSION' 
                                                                                IN TYPEOF  (arg) 
THEN
          RETURN (used_functions (arg\binary_generic_expression.operands[1])
                    + used_functions (
                              arg\binary_generic_expression.operands[2]));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.MULTIPLE_ARITY_BOOLEAN_EXPRESSION' 
                                                                                IN TYPEOF  (arg) 
THEN
          REPEAT i := 1 TO  
                    SIZEOF (arg\multiple_arity_Boolean_expression.operands);
                    result := result + used_functions(
                              arg\multiple_arity_Boolean_expression.operands[i]);
          END_REPEAT;
          RETURN (result);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_EXPRESSION' 
                                                                                IN TYPEOF  (arg) 
THEN
          RETURN (used_functions (arg\comparison_expression.operands[1])
                              + used_functions (arg\comparison_expression.operands[2]));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.INTERVAL_EXPRESSION' IN  TYPEOF(arg) 
THEN 
          RETURN (used_functions(arg\interval_expression.interval_low)
                    + used_functions(arg\interval_expression.interval_high)
                    + used_functions(arg\interval_expression.interval_item));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.INDEX_EXPRESSION' IN  TYPEOF  (arg) 
THEN
          RETURN (used_functions (arg\index_expression.operand)
                    + used_functions (arg\index_expression.index));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.SUBSTRING_EXPRESSION' IN  TYPEOF  (arg) 
THEN
          RETURN (used_functions (arg\substring_expression.operand)
                    + used_functions (arg\substring_expression.index1)
                    + used_functions (arg\substring_expression.index2));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.CONCAT_EXPRESSION' IN  TYPEOF  (arg) 
THEN
          REPEAT i := 1 TO SIZEOF (arg\concat_expression.operands);
                    result := result + used_functions (
                              arg\concat_expression.operands[i]);
          END_REPEAT;
          RETURN (result);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.FORMAT_FUNCTION' IN  TYPEOF  (arg) 
THEN
          RETURN (used_functions (arg\format_function.value_to_format)
                    + used_functions (arg\format_function.format_string));
END_IF;
(*
IF 'ISO13584_EXPRESSIONS_SCHEMA.LIKE_EXPRESSION' IN TYPEOF (arg) 
THEN
          RETURN (used_functions (arg\comparison_expression.operands[1])
                    + used_functions (arg\comparison_expression.operands[2]));
END_IF;
*)
RETURN ([ ]);

END_FUNCTION; -- used_functions

public class FUsed_functions
          public static Value run(SdaiContext _context, Value arg)