private void adjustBookType() {
    // The book type represents the underlying category of book.
    // Fine tune it here.
    BookCategory focusedCategory = (BookCategory) getValue(ConfigEntryType.CATEGORY);
    questionable = focusedCategory == BookCategory.QUESTIONABLE;

    // From the config map, extract the important bean properties
    String modTypeName = (String) getValue(ConfigEntryType.MOD_DRV);
    if (modTypeName == null) {
      log.error(
          "Book not supported: malformed conf file for "
              + internal
              + " no "
              + ConfigEntryType.MOD_DRV.getName()
              + " found");
      supported = false;
      return;
    }

    bookType = BookType.fromString(modTypeName);
    if (getBookType() == null) {
      log.error("Book not supported: malformed conf file for " + internal + " no book type found");
      supported = false;
      return;
    }

    BookCategory basicCategory = getBookType().getBookCategory();
    if (basicCategory == null) {
      supported = false;
      return;
    }

    // The book type represents the underlying category of book.
    // Fine tune it here.
    if (focusedCategory == BookCategory.OTHER || focusedCategory == BookCategory.QUESTIONABLE) {
      focusedCategory = getBookType().getBookCategory();
    }

    add(ConfigEntryType.CATEGORY, focusedCategory.getName());
  }