Overview Schemas Index

PRODUCT_PROPERTY_REPRESENTATION_SCHEMA (jsdai.SProduct_property_representation_schema)


FUNCTION get_directed_link
          (nodes : LIST [0:?] OF representation; undirected_link : LIST [0:?] OF chained_representation_link) : LIST [0:?] OF representation_relationship;

LOCAL
   directed_link : LIST OF representation_relationship := [];
  END_LOCAL;

  REPEAT i := 1 TO SIZEOF(undirected_link);
   CASE TRUE OF
    ('REPRESENTATION_SCHEMA.REPRESENTATION_CONTEXT' IN  TYPEOF(undirected_link[i])) :
    BEGIN
     IF  ((nodes[i]\representation.context_of_items   :=: undirected_link[i]) AND  
         (nodes[i+1]\representation.context_of_items :=: undirected_link[i])) THEN
       INSERT(directed_link, representation_relationship('','',nodes[i],nodes[i+1]), (i - 1));
     ELSE
       RETURN(?); 
     END_IF;
    END;

    ('REPRESENTATION_SCHEMA.REPRESENTATION_RELATIONSHIP' IN  TYPEOF(undirected_link[i])) :
    BEGIN
     IF  (((nodes[i]   :=: undirected_link[i]\representation_relationship.rep_1) AND
          (nodes[i+1] :=: undirected_link[i]\representation_relationship.rep_2)) OR
         ((nodes[i]   :=: undirected_link[i]\representation_relationship.rep_2) AND
          (nodes[i+1] :=: undirected_link[i]\representation_relationship.rep_1))) THEN
       INSERT(directed_link, representation_relationship('','',nodes[i],nodes[i+1]), (i - 1));
     ELSE
       RETURN(?); 
     END_IF;
    END;

    ('REPRESENTATION_SCHEMA.MAPPED_ITEM' IN  TYPEOF(undirected_link[i])) :
    BEGIN
     IF ((nodes[i] IN using_representations(undirected_link[i])) AND 
         (nodes[i+1] :=: undirected_link[i]\mapped_item.mapping_source\representation_map.mapped_representation)) THEN
       INSERT(directed_link, representation_relationship('','',nodes[i],nodes[i+1]), (i - 1));
     ELSE
       RETURN(?); 
     END_IF;
    END;

    OTHERWISE : RETURN(?);
   END_CASE;
  END_REPEAT;
  RETURN(directed_link);

END_FUNCTION; -- get_directed_link

public class FGet_directed_link
          public static Value run(SdaiContext _context, Value nodes, Value undirected_link)