protected void throwClassificationNotFoundException(String classificationName) {
   final ExceptionMessageBuilder br = new ExceptionMessageBuilder();
   br.addNotice("The classification in the parameter comment option was not found.");
   br.addItem("ParameterBean");
   br.addElement(_pmbMetaData.getClassName());
   br.addItem("Property");
   br.addElement(_propertyName);
   br.addItem("Option");
   br.addElement(OPTION_PREFIX + classificationName + OPTION_SUFFIX);
   final String msg = br.buildExceptionMessage();
   throw new IllegalStateException(msg);
 }
 protected void throwJsonPropertyClassificationCodeOfMethodNotFoundException(
     String code, JsonReader in, ClassificationCodeOfMethodNotFoundException e) {
   final ExceptionMessageBuilder br = new ExceptionMessageBuilder();
   br.addNotice("Not found the codeOf() in the classification type for the JSON property.");
   br.addItem("Advice");
   br.addElement("The classification type of JSON property should have the codeOf() method.");
   br.addElement("And you should use CDef type that always has the method.");
   br.addElement("For example:");
   br.addElement("  (x)");
   br.addElement("    public String memberName;");
   br.addElement("    public Classification memberStatus;    // *NG");
   br.addElement("  (o)");
   br.addElement("    public String memberName;");
   br.addElement("    public CDef.MemberStatus memberStatus; // OK");
   br.addItem("Classification");
   br.addElement(clsType);
   br.addItem("Specified Code");
   br.addElement(code);
   br.addItem("JSON Property");
   br.addElement(in.getPath());
   final String msg = br.buildExceptionMessage();
   throw new JsonPropertyClassificationCodeOfMethodNotFoundException(msg, e);
 }
 protected void throwJsonPropertyUnknownClassificationCodeException(
     String code, JsonReader in, ClassificationUnknownCodeException e) {
   final String propertyPath = in.getPath();
   final ExceptionMessageBuilder br = new ExceptionMessageBuilder();
   br.addNotice("Unknown classification code for the JSON property.");
   br.addItem("Advice");
   br.addElement("Make sure your classification code in requested JSON.");
   br.addElement("And confirm the classification elements.");
   br.addItem("Classification");
   br.addElement(clsType);
   br.addItem("Unknown Code");
   br.addElement(code);
   br.addItem("JSON Property");
   br.addElement(propertyPath);
   final String msg = br.buildExceptionMessage();
   throw new JsonPropertyClassificationCodeUnknownException(msg, clsType, propertyPath, e);
 }
 protected void throwCommonColumnMapRelatedTableNotFoundException() {
   final ExceptionMessageBuilder br = new ExceptionMessageBuilder();
   br.addNotice("The table related to common columns was not found.");
   br.addItem("Advice");
   br.addElement("At least one table should be related to common columns.");
   br.addElement("The definition might contain a non-existent common column.");
   br.addElement("Make sure your definition is correct.");
   br.addElement("");
   br.addElement("And DBFlute cannot detect the common columns");
   br.addElement("of tables without PK, so check about it too");
   br.addItem("Common Column");
   br.addElement(getCommonColumnNameList());
   final String msg = br.buildExceptionMessage();
   throw new DfCommonColumnMapRelatedTableNotFoundException(msg);
 }
 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;
 }