Overview Schemas Index

LAND_XIM (jsdai.SLand_xim)


FUNCTION land_get_associated_land_for_thermal_removal
          (input : dependent_thermal_isolation_removal_component_armx) : land_armx;

LOCAL
   assembly_relationships_for_associated_structure : SET  OF  Structured_layout_component_sub_assembly_relationship_armx := [];
   assembly_relationship : SET  OF  Structured_layout_component_sub_assembly_relationship_armx :=
           bag_to_set(USEDIN(input, 'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP_ARMX.RELATED_VIEW'));
   associated_structure : Structured_layout_component_armx;
   component_mrlc : SET  OF  Material_removal_laminate_component_armx := [];
   component_relationship : SET OF  Structured_layout_component_sub_assembly_relationship_armx :=
           bag_to_set(USEDIN(input, 'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP_ARMX.RELATING_VIEW'));
   first_location : Template_location_in_structured_template := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship_armx.first_location;
   resident_stratum : stratum_armx;
   resident_sftc : Stratum_feature_template_component_armx;
  END_LOCAL;
  --determine resident_stratum;
  --critical TO  just USE resident stratum AS the individual isolation features might be against different stratum features (different power areas).
   REPEAT  i := 1 TO  SIZEOF(component_relationship) BY  1;
     component_mrlc := component_mrlc + component_relationship[i]\Structured_layout_component_sub_assembly_relationship_armx.related_view;
   END_REPEAT;
  CASE  TRUE  OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_ARMX' IN  TYPEOF(component_mrlc[1]\Material_removal_laminate_component_armx.design_intent[1])) : 
     resident_stratum := component_mrlc[1]\Material_removal_laminate_component_armx.design_intent[1];
  
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_FEATURE_TEMPLATE_COMPONENT_ARMX' IN  TYPEOF(component_mrlc[1]\Material_removal_laminate_component_armx.design_intent[1])) :
    BEGIN
     resident_sftc := component_mrlc[1]\Material_removal_laminate_component_armx.design_intent[1];
     CASE  TRUE  OF
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_FEATURE_ARMX' 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_XIM.STRATUM_ARMX' 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;
  --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_XIM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP_ARMX.RELATING_VIEW')) - assembly_relationship;
  --this assembly relationship is excluded since we are querying FOR other relationships
  
  CASE TRUE OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.FOOTPRINT_OCCURRENCE_ARMX' 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_XIM.LAND_ARMX' 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_XIM.PADSTACK_OCCURRENCE_ARMX' IN  TYPEOF(associated_structure)) :
    BEGIN
     REPEAT i := 1 TO SIZEOF(assembly_relationships_for_associated_structure) BY 1;
      IF (('LAND_XIM.LAND_ARMX' 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_thermal_removal

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