code: public static BankAccountBicSharedConstants create() {
      if (bicMapConstants == null) { // NOPMD it's thread save!
        synchronized (BankAccountBicConstantsImpl.class) {
          if (bicMapConstants == null) {
            final BankAccountBicConstantsImpl bicMapConstantsTmp = new BankAccountBicConstantsImpl();
            COUNTRIES.stream().forEach(country -> bicMapConstantsTmp.addBankAccounts(country,
                readMapFromProperties("BankAccountBic" + country + "Constants", "bankAccounts")));
            bicMapConstants = bicMapConstantsTmp;
          }
        }
      }
      return bicMapConstants;
    }
docs: Instantiates a class via deferred binding.
  
  @return the new instance, which must be cast to the requested class