Overview Schemas Index

LAND_XIM (jsdai.SLand_xim)


FUNCTION land_get_associated_land_for_electrical_removal
          (input : dependent_electrical_isolation_removal_component) : land;

LOCAL
   assembly_relationships_for_associated_structure : SET  OF  Structured_layout_component_sub_assembly_relationship := [];
   assembly_relationship : SET OF  Structured_layout_component_sub_assembly_relationship :=
           bag_to_set(USEDIN(input, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATED_VIEW'));
   associated_structure : Structured_layout_component;
   first_location : Template_location_in_structured_template := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship_armx.first_location;
   resident_stratum : stratum;
   resident_sftc : Stratum_feature_template_component;
  END_LOCAL;
  --determine resident_stratum;
  --critical TO  just USE resident stratum AS the individual design intents might be against different stratum features (different power areas).
  --address the multiple design intents here
  --use the last stratum found
   REPEAT  i := 1 TO  SIZEOF(input\Material_removal_laminate_component_armx.design_intent) BY  1;
  CASE  TRUE  OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN  TYPEOF(input\Material_removal_laminate_component_armx.design_intent[i])) : 
     resident_stratum := input\Material_removal_laminate_component_armx.design_intent[i];
  
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT' IN  TYPEOF(input\Material_removal_laminate_component_armx.design_intent[i])) :
    BEGIN
     resident_sftc := input\Material_removal_laminate_component_armx.design_intent[i];
     CASE  TRUE  OF
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN  TYPEOF(resident_sftc\Stratum_feature_template_component_armx.implementation_or_resident_stratum)) :
       resident_stratum := resident_sftc\Stratum_feature_template_component_armx.implementation_or_resident_stratum\Stratum_feature_armx.resident_stratum;
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN  TYPEOF(resident_sftc\Stratum_feature_template_component_armx.implementation_or_resident_stratum)) :
       resident_stratum := resident_sftc\Stratum_feature_template_component_armx.implementation_or_resident_stratum;
       OTHERWISE  :
        RETURN(?);
     END_CASE;
    END;
    OTHERWISE  :
     RETURN(?);
  END_CASE;
   END_REPEAT;
  --determine first_location;
  --if there is more than one assembly_relationship RETURN  UNKNOWN;
   IF  SIZEOF(assembly_relationship) <> 1 THEN  RETURN(?);
   END_IF;
   
  --determine associated_land;
  --associated land is on same stratum;
  
     associated_structure := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship_armx.relating_view;
     assembly_relationships_for_associated_structure := 
                     bag_to_set(USEDIN(associated_structure, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATING_VIEW')) - assembly_relationship;
  --this assembly relationship is excluded since we are querying FOR other relationships
  
  CASE TRUE OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FOOTPRINT_OCCURRENCE' IN  TYPEOF(associated_structure)) :
  --if part OF footprint THEN associated_land has same first_location;
    BEGIN   
     REPEAT  i := 1 TO  SIZEOF(assembly_relationships_for_associated_structure) BY  1;
      IF  ((first_location :=: assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.first_location) AND
         ('LAND_ARM.LAND' IN  TYPEOF(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view)) AND
         (assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view\Stratum_feature_template_component_armx.resident_stratum
              :=: resident_stratum))
      THEN
          RETURN(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view);
      END_IF;
     END_REPEAT;
    --if no land is found RETURN  UNKNOWN.
     RETURN(?);
    END;
    
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PADSTACK_OCCURRENCE' IN  TYPEOF(associated_structure)) :
    BEGIN
     REPEAT i := 1 TO SIZEOF(assembly_relationships_for_associated_structure) BY 1;
      IF (('LAND_ARM.LAND' IN TYPEOF(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view)) AND
          (assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view\Stratum_feature_template_component_armx.resident_stratum
               :=: resident_stratum))
      THEN
          RETURN(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view);
       END_IF;
     END_REPEAT;
    --if no land is found RETURN  UNKNOWN.
     RETURN(?);
    END;
    
    OTHERWISE :
    --if no land is found RETURN UNKNOWN.
     RETURN(?);
  END_CASE;

END_FUNCTION; -- land_get_associated_land_for_electrical_removal

public class FLand_get_associated_land_for_electrical_removal
          public static Value run(SdaiContext _context, Value input)