def SetDefaultValue(self, scan_object):
    """Sets the default (non-match) value.

    Args:
      scan_object: a scan object, either a scan tree sub node (instance of
                   PathFilterScanTreeNode) or a string containing a path.

    Raises:
      TypeError: if the scan object is of an unsupported type.
      ValueError: if the default value is already set.
    """
    if (not isinstance(scan_object, PathFilterScanTreeNode) and
        not isinstance(scan_object, py2to3.STRING_TYPES)):
      raise TypeError('Unsupported scan object type.')

    if self.default_value:
      raise ValueError('Default value already set.')

    self.default_value = scan_object