Overview Schemas Index

MATERIAL_PROPERTY_DEFINITION_SCHEMA (jsdai.SMaterial_property_definition_schema)


FUNCTION acyclic_property_definition_relationship
          (relation : property_definition_relationship, relatives : SET [1:?] OF property_definition, specific_relation : STRING) : LOGICAL;

LOCAL
    x                : SET OF property_definition_relationship;
  END_LOCAL;
  IF  relation.relating_property_definition IN  
            relatives THEN
    RETURN (FALSE);
  END_IF;             -- IN  is based IN  instance equality
  x := QUERY (pd <* bag_to_set (USEDIN
       (relation.relating_property_definition,
        'MATERIAL_PROPERTY_DEFINITION_SCHEMA.' +
        'PROPERTY_DEFINITION_RELATIONSHIP.' +
        'RELATED_PROPERTY_DEFINITION')) |
         specific_relation IN TYPEOF (pd));
  REPEAT I := 1 TO HIINDEX(x);             -- pre-checked loop
    IF NOT acyclic_property_definition_relationship
      (x[I],
       relatives + relation.relating_property_definition,
       specific_relation) THEN
      RETURN(FALSE);
    END_IF;
  END_REPEAT;
  RETURN(TRUE);

END_FUNCTION; -- acyclic_property_definition_relationship

public class FAcyclic_property_definition_relationship
          public static Value run(SdaiContext _context, Value relation, Value relatives, Value specific_relation)