text: 
  
  from core.himesis import Himesis, HimesisPreConditionPatternLHS
  import cPickle as pickle
  from uuid import UUID
  
  class HLocalDef1ProcPart3_CompleteLHS(HimesisPreConditionPatternLHS):
      def __init__(self):
          """
          Creates the himesis graph representing the AToM3 model HLocalDef1ProcPart3_CompleteLHS.
          """
          # Flag this instance as compiled now
          self.is_compiled = True
          
          super(HLocalDef1ProcPart3_CompleteLHS, self).__init__(name='HLocalDef1ProcPart3_CompleteLHS', num_nodes=5, edges=[])
          
          # Add the edges
          self.add_edges([(0, 3), (0, 4), (3, 1), (4, 2)])
          # Set the graph attributes
          self["mm__"] = pickle.loads("""(lp1
  S'MT_pre__UMLRT2Kiltera_MM'
  p2
  aS'MoTifRule'
  p3
  a.""")
          self["MT_constraint__"] = """#===============================================================================
  # This code is executed after the nodes in the LHS have been matched.
  # You can access a matched node labelled n by: PreNode('n').
  # To access attribute x of node n, use: PreNode('n')['x'].
  # The given constraint must evaluate to a boolean expression:
  #    returning True enables the rule to be applied,
  #    returning False forbids the rule from being applied.
  #===============================================================================
  
  return True
  """
          self["name"] = """"""
          self["GUID__"] = UUID('39c96334-3415-4f08-a3b1-8a6e0bba659b')
          
          # Set the node attributes
          self.vs[0]["MT_pivotOut__"] = """element1"""
          self.vs[0]["MT_subtypeMatching__"] = False
          self.vs[0]["MT_pre__classtype"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[0]["MT_pivotIn__"] = """element1"""
          self.vs[0]["MT_label__"] = """1"""
          self.vs[0]["MT_subtypes__"] = pickle.loads("""(lp1
  .""")
          self.vs[0]["MT_dirty__"] = False
          self.vs[0]["mm__"] = """MT_pre__LocalDef"""
          self.vs[0]["MT_pre__cardinality"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[0]["MT_pre__name"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[0]["GUID__"] = UUID('e63a90c2-9d5f-48ce-9f8e-f383ae1189fc')
          self.vs[1]["MT_subtypeMatching__"] = True
          self.vs[1]["MT_pre__classtype"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[1]["MT_label__"] = """2"""
          self.vs[1]["MT_subtypes__"] = pickle.loads("""(lp1
  S'MT_pre__New'
  p2
  aS'MT_pre__Inst'
  p3
  aS'MT_pre__LocalDef'
  p4
  aS'MT_pre__Listen'
  p5
  aS'MT_pre__ConditionSet'
  p6
  aS'MT_pre__Condition'
  p7
  aS'MT_pre__Print'
  p8
  aS'MT_pre__Match'
  p9
  aS'MT_pre__Delay'
  p10
  aS'MT_pre__Trigger_T'
  p11
  aS'MT_pre__Null'
  p12
  aS'MT_pre__Par'
  p13
  aS'MT_pre__ParIndexed'
  p14
  a.""")
          self.vs[1]["MT_dirty__"] = False
          self.vs[1]["mm__"] = """MT_pre__Proc"""
          self.vs[1]["MT_pre__cardinality"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[1]["MT_pre__name"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[1]["GUID__"] = UUID('95ab0c74-557b-45c5-ba6c-675951745617')
          self.vs[2]["MT_subtypeMatching__"] = True
          self.vs[2]["MT_pre__classtype"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[2]["MT_label__"] = """4"""
          self.vs[2]["MT_subtypes__"] = pickle.loads("""(lp1
  S'MT_pre__New'
  p2
  aS'MT_pre__Inst'
  p3
  aS'MT_pre__LocalDef'
  p4
  aS'MT_pre__Listen'
  p5
  aS'MT_pre__ConditionSet'
  p6
  aS'MT_pre__Condition'
  p7
  aS'MT_pre__Print'
  p8
  aS'MT_pre__Match'
  p9
  aS'MT_pre__Delay'
  p10
  aS'MT_pre__Trigger_T'
  p11
  aS'MT_pre__Null'
  p12
  aS'MT_pre__Par'
  p13
  aS'MT_pre__ParIndexed'
  p14
  a.""")
          self.vs[2]["MT_dirty__"] = False
          self.vs[2]["mm__"] = """MT_pre__Proc"""
          self.vs[2]["MT_pre__cardinality"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[2]["MT_pre__name"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[2]["GUID__"] = UUID('0ebde409-d3a5-4ec5-812b-eaf16dea5034')
          self.vs[3]["MT_subtypeMatching__"] = False
          self.vs[3]["MT_pre__associationType"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[3]["MT_label__"] = """3"""
          self.vs[3]["MT_subtypes__"] = pickle.loads("""(lp1
  .""")
          self.vs[3]["MT_dirty__"] = False
          self.vs[3]["mm__"] = """MT_pre__directLink_T"""
          self.vs[3]["GUID__"] = UUID('ec9e8cfb-30b2-49a7-81fe-e65e0bc1da48')
          self.vs[4]["MT_subtypeMatching__"] = False
          self.vs[4]["MT_pre__associationType"] = """
  #===============================================================================
  # This code is executed when evaluating if a node shall be matched by this rule.
  # You can access the value of the current node's attribute value by: attr_value.
  # You can access any attribute x of this node by: this['x'].
  # If the constraint relies on attribute values from other nodes,
  # use the LHS/NAC constraint instead.
  # The given constraint must evaluate to a boolean expression.
  #===============================================================================
  
  return True
  """
          self.vs[4]["MT_label__"] = """5"""
          self.vs[4]["MT_subtypes__"] = pickle.loads("""(lp1
  .""")
          self.vs[4]["MT_dirty__"] = False
          self.vs[4]["mm__"] = """MT_pre__directLink_T"""
          self.vs[4]["GUID__"] = UUID('3d05362e-5bf1-45bf-b8ef-58a2929fbdcc')
  
      def eval_classtype1(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_cardinality1(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_name1(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_classtype2(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_cardinality2(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_name2(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_classtype4(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_cardinality4(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_name4(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_associationType3(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def eval_associationType5(self, attr_value, this):
          
          #===============================================================================
          # This code is executed when evaluating if a node shall be matched by this rule.
          # You can access the value of the current node's attribute value by: attr_value.
          # You can access any attribute x of this node by: this['x'].
          # If the constraint relies on attribute values from other nodes,
          # use the LHS/NAC constraint instead.
          # The given constraint must evaluate to a boolean expression.
          #===============================================================================
          
          return True
  
  
      def constraint(self, PreNode, graph):
          """
              Executable constraint code. 
              @param PreNode: Function taking an integer as parameter
                              and returns the node corresponding to that label.
          """
          #===============================================================================
          # This code is executed after the nodes in the LHS have been matched.
          # You can access a matched node labelled n by: PreNode('n').
          # To access attribute x of node n, use: PreNode('n')['x'].
          # The given constraint must evaluate to a boolean expression:
          #    returning True enables the rule to be applied,
          #    returning False forbids the rule from being applied.
          #===============================================================================
          
          return True
  
  