FUNCTION definition_for_temporal_spatial_domain
(domain : temporal_spatial_domain) : BOOLEAN;
LOCAL spatial_set : SET OF spatial_decomposition_of_temporal_spatial_domain; behavioural_set : SET OF behavioural_decomposition_of_temporal_spatial_domain; domains : SET OF temporal_spatial_domain := []; idealising : BAG OF idealisation_relationship; spatial_bag : BAG OF spatial_decomposition_of_temporal_spatial_domain; behavioural_bag : BAG OF behavioural_decomposition_of_temporal_spatial_domain; END_LOCAL;
idealising := USEDIN(domain, 'ANALYSIS_PRODUCT_RELATIONSHIPS_SCHEMA.IDEALISATION_RELATIONSHIP.IDEALISATION'); IF SIZEOF(idealising) > 0 THEN RETURN(TRUE); END_IF;
spatial_bag := USEDIN(domain, 'PRODUCT_ANALYSIS_SCHEMA.SPATIAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS'); IF SIZEOF(spatial_bag) > 0 THEN spatial_set := bag_to_set(spatial_bag); REPEAT i := 1 TO HIINDEX(spatial_set); domains := domains + spatial_set[i].whole; END_REPEAT; END_IF;
behavioural_bag := USEDIN(domain, 'PRODUCT_ANALYSIS_SCHEMA.BEHAVIOURAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS'); IF SIZEOF(behavioural_bag) > 0 THEN behavioural_set := bag_to_set(behavioural_bag); REPEAT i := 1 TO HIINDEX(behavioural_set); domains := domains + behavioural_set[i].whole; END_REPEAT; END_IF;
IF SIZEOF(domains) > 0 THEN REPEAT i := 1 TO HIINDEX(domains); IF definition_for_temporal_spatial_domain(domains[i]) THEN RETURN(TRUE); END_IF; END_REPEAT; END_IF; RETURN(FALSE); END_FUNCTION; -- definition_for_temporal_spatial_domain
|