private <T> void findAndSetBaseClassViaMappings(
      ClassCacheMgr cacheMgr, CFMappingDef<T> cfMapDef) {
    CFMappingDef<? super T> cfBaseMapDef = cacheMgr.findBaseClassViaMappings(cfMapDef);

    if (null == cfBaseMapDef) {
      throw new HectorObjectMapperException(
          cfMapDef.getRealClass()
              + " is a derived class entity but @"
              + Table.class.getSimpleName()
              + " is not specified in its super classes - quitting");
    }

    cfMapDef.setCfBaseMapDef(cfBaseMapDef);
  }
  private <T> void validateStandaloneClass(ClassCacheMgr cacheMgr, CFMappingDef<T> cfMapDef) {
    CFMappingDef<? super T> cfSuperDef;

    if (null == cfMapDef.getEffectiveColFamName()) {
      throw new HectorObjectMapperException(
          "Class, "
              + cfMapDef.getRealClass().getName()
              + ", is missing @"
              + Table.class.getSimpleName());
    } else if (null != (cfSuperDef = cacheMgr.findBaseClassViaMappings(cfMapDef))) {
      throw new HectorObjectMapperException(
          "@"
              + Table.class.getSimpleName()
              + " can only be used once per hierarchy and has been specified in class "
              + cfSuperDef.getRealClass().getName()
              + " and "
              + cfMapDef.getRealClass().getName()
              + " - quitting");
    }
  }