protected String extractClassificationNameFromOption(boolean check) {
   if (_extracted) {
     return _specifiedValue;
   }
   _extracted = true;
   final String pmbMetaDataPropertyOption = getPmbMetaDataPropertyOption();
   if (pmbMetaDataPropertyOption == null) {
     if (check) {
       String msg = "The property name didn't have its option:";
       msg = msg + " " + _pmbMetaData.getClassName() + "." + _propertyName;
       throw new IllegalStateException(msg);
     } else {
       return null;
     }
   }
   String option = pmbMetaDataPropertyOption.trim();
   {
     if (option.trim().length() == 0) {
       if (check) {
         String msg = "The option of the property name should not be empty:";
         msg = msg + " property=" + _pmbMetaData.getClassName() + "." + _propertyName;
         throw new IllegalStateException(msg);
       } else {
         return null;
       }
     }
     final List<String> splitOption = splitOption(option);
     String firstOption = null;
     for (String element : splitOption) {
       if (element.startsWith(OPTION_PREFIX) && element.endsWith(OPTION_SUFFIX)) {
         firstOption = element;
         break;
       }
     }
     if (firstOption == null) {
       if (check) {
         String msg = "The option of class name and the property name should be 'cls(xxx)':";
         msg =
             msg + " property=" + _pmbMetaData.getClassName() + "." + _propertyName + ":" + option;
         throw new IllegalStateException(msg);
       } else {
         return null;
       }
     }
     option = firstOption;
   }
   final int clsIdx = OPTION_PREFIX.length();
   final int clsEndIdx = option.length() - OPTION_SUFFIX.length();
   try {
     _specifiedValue = option.substring(clsIdx, clsEndIdx);
   } catch (StringIndexOutOfBoundsException e) {
     final ExceptionMessageBuilder br = new ExceptionMessageBuilder();
     br.addNotice("The classification option for the parameter comment was invalid.");
     br.addItem("ParameterBean");
     br.addElement(_pmbMetaData.getClassName());
     br.addItem("Property");
     br.addElement(_propertyName);
     br.addItem("Option");
     br.addElement(option);
     br.addItem("Exception");
     br.addElement(e.getClass());
     br.addElement(e.getMessage());
     br.addElement("{" + option + "}.substring(" + clsIdx + ", " + clsEndIdx + ")");
     final String msg = br.buildExceptionMessage();
     throw new IllegalStateException(msg, e);
   }
   return _specifiedValue;
 }