Overview Schemas Index

ISO13584_EXPRESSIONS_SCHEMA (jsdai.SIso13584_expressions_schema)


FUNCTION is_sql_mappable
          (arg : expression) : LOGICAL;

LOCAL
          i: INTEGER;
END_LOCAL;

IF 'ISO13584_EXPRESSIONS_SCHEMA.SIMPLE_NUMERIC_EXPRESSION' 
                                                                                IN TYPEOF  (arg) 
THEN 
          RETURN (TRUE);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.SQL_MAPPABLE_DEFINED_FUNCTION' 
                                                                                IN TYPEOF  (arg) 
THEN 
          RETURN (TRUE);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.MINUS_FUNCTION' IN  TYPEOF(arg) 
THEN 
          RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand)); 
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.ABS_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.SIN_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.COS_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.TAN_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.ASIN_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.ACOS_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.ATAN_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.EXP_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.LOG_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.LOG2_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.LOG10_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.SQUARE_ROOT_FUNCTION' 
                                                                                IN TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.VALUE_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.LENGTH_FUNCTION' 
                                                                                IN TYPEOF(arg))
THEN 
          RETURN (FALSE);
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.PLUS_EXPRESSION' IN  TYPEOF(arg)) 
                    OR('ISO13584_EXPRESSIONS_SCHEMA.MULT_EXPRESSION' IN  TYPEOF(arg)) 
                    OR('ISO13584_EXPRESSIONS_SCHEMA.MAXIMUM_FUNCTION' 
                                                                                IN TYPEOF(arg)) 
                    OR('ISO13584_EXPRESSIONS_SCHEMA.MINIMUM_FUNCTION' 
                                                                                IN TYPEOF(arg)) 
THEN 
          REPEAT i :=1 TO  SIZEOF  (
                              arg\multiple_arity_numeric_expression.operands);
                    IF NOT  is_SQL_mappable(
                              arg\multiple_arity_numeric_expression.operands[i])
                    THEN 
                              RETURN (FALSE);
                    END_IF;
          END_REPEAT;
RETURN (TRUE);
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.MINUS_EXPRESSION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.SLASH_EXPRESSION' IN  
                                                                                TYPEOF(arg))
THEN
                    RETURN (is_SQL_mappable(
                              arg\binary_numeric_expression.operands[1])
                    AND is_SQL_mappable(arg\binary_numeric_expression.operands[2]));
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.DIV_EXPRESSION' IN  TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.MOD_EXPRESSION' IN  TYPEOF(arg)) 
                    OR('ISO13584_EXPRESSIONS_SCHEMA.POWER_EXPRESSION' 
                                                                                IN TYPEOF(arg))
THEN 
          RETURN (FALSE);          
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.SIMPLE_BOOLEAN_EXPRESSION' 
                                                                                IN TYPEOF  (arg) 
THEN 
          RETURN (TRUE);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.NOT_EXPRESSION' IN  TYPEOF  (arg) 
THEN 
          RETURN (is_SQL_mappable (arg\UNARY_GENERIC_EXPRESSION.OPERAND));
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.ODD_FUNCTION'IN TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.XOR_EXPRESSION' 
                                                                                IN TYPEOF  (arg)) 
THEN         
          RETURN (FALSE);
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.AND_EXPRESSION' IN  TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.OR_EXPRESSION' IN  TYPEOF  (arg)) 
THEN
          REPEAT i:=1 TO SIZEOF (
                              arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS);
                    IF NOT is_SQL_mappable (
                              arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS[i]) 
                    THEN 
                              RETURN (FALSE);
                    END_IF;
          END_REPEAT;
          RETURN (TRUE);
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.EQUALS_EXPRESSION' IN  TYPEOF  (arg) 
THEN
          RETURN(is_SQL_mappable (
                              arg\BINARY_GENERIC_EXPRESSION.OPERANDS [1])
                    AND is_SQL_mappable(
                              arg\BINARY_GENERIC_EXPRESSION.OPERANDS [2]));
END_IF;
IF          ('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_EQUAL' IN  TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_GREATER' 
                                                                                IN TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_GREATER_EQUAL'
                                                                                IN TYPEOF  (arg))
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_LESS' 
                                                                                IN TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_LESS_EQUAL' 
                                                                                IN TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_NOT_EQUAL' 
                                                                                IN TYPEOF  (arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.LIKE_EXPRESSION' 
                                                                                IN TYPEOF (arg)) 
THEN
          RETURN (is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[1])
                    AND is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[2]));
END_IF;
IF 'ISO13584_EXPRESSIONS_SCHEMA.INTERVAL_EXPRESSION' IN  TYPEOF(arg) 
THEN 
          RETURN (is_SQL_mappable(arg\interval_expression.interval_low) 
                    AND is_SQL_mappable(arg\interval_expression.interval_high)
                    AND is_SQL_mappable(arg\interval_expression.interval_item));
END_IF;
IF ('ISO13584_EXPRESSIONS_SCHEMA.NUMERIC_DEFINED_FUNCTION' 
                                                                                IN TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.BOOLEAN_DEFINED_FUNCTION' 
                                                                                IN TYPEOF(arg))
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.STRING_DEFINED_FUNCTION' 
                                                                                IN TYPEOF(arg))  
THEN 
                    RETURN (FALSE) ;
END_IF;

IF 'ISO13584_EXPRESSIONS_SCHEMA.SIMPLE_STRING_EXPRESSION' 
                                                                                IN TYPEOF(ARG) 
THEN 
          RETURN (TRUE);
END_IF;
IF           ('ISO13584_EXPRESSIONS_SCHEMA.INDEX_EXPRESSION' IN TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.SUBSTRING_EXPRESSION' 
                                                                                IN TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.CONCAT_EXPRESSION' 
                                                                                IN TYPEOF(arg)) 
                    OR ('ISO13584_EXPRESSIONS_SCHEMA.FORMAT_FUNCTION' 
                                                                                IN TYPEOF(arg)) 
THEN 
          RETURN (FALSE);
END_IF;

          RETURN (FALSE);

END_FUNCTION; -- is_sql_mappable

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