code: public synchronized void initDevice() {
          MDC.setContextMap(contextMap);
          xlogger.entry();
          if (stateImpl == null) {
              stateImpl = new StateImpl(businessObject, null, null);
          }
          if (statusImpl == null) {
              statusImpl = new StatusImpl(businessObject, null, null);
          }
          if (initImpl == null) {
              buildInit(null, false);
          }
          doInit();
          try {
              pushInterfaceChangeEvent(true);
          } catch (final DevFailed e) {
              // ignore
              logger.error("error pushing event", e);
          }
          logger.debug("device init done");
          xlogger.exit();
      }
docs: Initializes the device: <br>
  <ul>
  <li>reloads device and class properties</li>
  <li>applies memorized value to attributes</li>
  <li>restarts polling</li>
  <li>calls delete method {@link Delete}
  <li>
  <li>calls init method {@link Init}
  <li>
  </ul>