docs: public void addResourceChangeListener(ResourceChangeListener pListener,
                                            Object pResourceId, long pPeriod) throws IOException {
          // Create the task
          ResourceMonitorTask task = new ResourceMonitorTask(pListener, pResourceId);
  
          // Get unique Id
          Object resourceId = getResourceId(pResourceId, pListener);
  
          // Remove the old task for this Id, if any, and register the new one
          synchronized (timerEntries) {
              removeListenerInternal(resourceId);
              timerEntries.put(resourceId, task);
          }
  
          timer.schedule(task, pPeriod, pPeriod);
      }