def parseConditions(self, root):
        """
     return an array of Condition objects
     for example, from
  
       <condition alias='C30'>
         <variable name='gamma irradiation' value='false'/>
         <variable name='time' value='30' units='minutes'/>
       </condition>
    
       <condition alias='G0'>
         <variable name='gamma irradiation' value='true'/>
         <variable name='time' value='0' units='minutes'/>
       </condition>
  
     string representation of the two resulting condition objects:
       [note that no units ('None') are specified for irradiation]
    
       condition: C30, gamma irradiation:  false, None,  time:  30, minutes
       condition: G0   gamma irradiation:  true,  None   time:   0, minutes

  
    """

        conditionElements = root.getChildren("condition")
        result = []  # use an array so that conditions can be stored in the
        # order in which they appear in the file, which may
        # reflect an order the user carefully created
        for c in conditionElements:
            alias = c.getAttribute("alias").value
            assert alias
            condition = Condition(alias)
            for v in c.getChildren("variable"):
                name = v.getAttribute("name").value
                value = v.getAttribute("value").value
                unitsAttribute = v.getAttribute("units")
                units = None
                if unitsAttribute:
                    units = unitsAttribute.value
                condition.addVariable(Variable(name, value, units))

            result.append(condition)

        return result