public <T extends DBusSignal> void addSigHandler(Class<T> type, String source, DBusInterface object,  DBusSigHandler<T> handler) throws DBusException
public <T extends DBusSignal> void addSigHandler(Class<T> type, DBusSigHandler<T> handler) throws DBusException
   public <T extends DBusSignal> void addSigHandler(Class<T> type, String source, DBusInterface object,  DBusSigHandler<T> handler) throws DBusException   {      if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException("Not A DBus Signal");      if (source.matches(BUSNAME_REGEX)) throw new DBusException("Cannot watch for signals based on well known bus name as source, only unique names.");      if (!source.matches(CONNID_REGEX)||source.length() > MAX_NAME_LENGTH)         throw new DBusException("Invalid bus name ("+source+")");      String objectpath = importedObjects.get(object).objectpath;      if (!objectpath.matches(OBJECT_REGEX)||objectpath.length() > MAX_NAME_LENGTH)         throw new DBusException("Invalid object path ("+objectpath+")");      addSigHandler(new DBusMatchRule(type, source, objectpath), handler);   }