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 parseTableAnnotation( ClassCacheMgr cacheMgr, Table anno, CFMappingDef<T> cfMapDef) { CFMappingDef<?> tmpDef; // column family can only be mapped to one class (base class) if (null != (tmpDef = cacheMgr.getCfMapDef(anno.name(), false))) { throw new HectorObjectMapperException( "classes, " + cfMapDef.getEffectiveClass().getName() + " and " + tmpDef.getEffectiveClass().getName() + ", are both mapped to ColumnFamily, " + tmpDef.getEffectiveColFamName() + ". Can only have one Class/ColumnFamily mapping - if multiple classes can be derived from a single ColumnFamily, use @" + Inheritance.class.getSimpleName()); } cfMapDef.setColFamName(anno.name()); }
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"); } }