/**
  * Initialize this PropertyHolder, loading and verifying it's properties. A PropertyHolder that
  * has not been initialized or whose initialization failed will throw an exception when accessed.
  * This method should be called only once, typically by the PropertyHolderRegistry that handles
  * PropertyHolders of this type before registration.
  *
  * @throws InitializationException if the PropertyHolder could not be initialized.
  */
 public final void initialize() throws InitializationException {
   if (!isInitialized()) {
     try {
       verifyProperties();
       _initialize();
       initialized = true;
     } catch (PropertyValidationException ex) {
       throw new InitializationException(ex);
     }
   } else {
     throw new IllegalStateException(
         "Called initialize() on "
             + TextUtils.getTypeDescription(this)
             + " while already initialized.");
   }
 }