class DefaultNameInitializer implements DeviceInitializer {

   @Override
   public void intialize(DeviceDriverContext context) {
      String name;
      try {
         String productId = context.getAttributeValue(ATTR_PRODUCT_ID);
         String population = getPopulation(context.getPlaceId());
         name = getNameForProductId(productId, population);
         name = uniquefy(context.getPlaceId(), name);
      }
      catch(Exception e) {
         logger.warn("Error resolving default name", e);
         name = defaultName;
      }
      logger.debug("Setting device name to {}", name);
      context.setAttributeValue(ATTR_NAME, name);
   }

   @Inject public  DefaultNameInitializer(
         ProductCatalogManager catalogManager,
         PlacePopulationCacheManager populationCacheMgr,
         PopulationDAO populationDao,
         DeviceDAO deviceDao
   );

}