code: @Override
    public final IProcessor lazyGet(//NOPMD
      final Map<String, Object> pAddParam,
        final String pBeanName) throws Exception {
      IProcessor proc = this.processorsMap.get(pBeanName);
      if (proc == null) {
        // locking:
        synchronized (this.processorsMap) {
          // make sure again whether it's null after locking:
          proc = this.processorsMap.get(pBeanName);
          if (proc == null) {
            if (pBeanName.equals(PrcRefreshItemsInList
              .class.getSimpleName())) {
              proc = lazyGetPrcRefreshItemsInList(pAddParam);
            } else if (pBeanName.equals(PrcRefreshCatalog
              .class.getSimpleName())) {
              proc = lazyGetPrcRefreshCatalog(pAddParam);
            } else if (pBeanName.equals(PrcCsvSampleDataRow
              .class.getSimpleName())) { //only web-store
              proc = lazyGetPrcCsvSampleDataRow(pAddParam);
            } else if (pBeanName.equals(PrcAssignItemsToCatalog
              .class.getSimpleName())) {
              proc = lazyGetPrcAssignItemsToCatalog(pAddParam);
            } else if (pBeanName.equals("waPrcEntitiesPage")) {
              proc = createPutPrcWaEntitiesPage();
            }
          }
        }
      }
      if (proc == null) {
        throw new ExceptionWithCode(ExceptionWithCode.CONFIGURATION_MISTAKE,
          pBeanName + " not found!");
      }
      return proc;
    }
docs: <p>Get bean in lazy mode (if bean is null then initialize it).</p>
  @param pAddParam additional param
  @param pBeanName - bean name
  @return requested bean or exception if not found
  @throws Exception - an exception