/** * Super constructor with arguments. * * @param clazz * parameterised class. * @param persistenceType * persistenceType. * @param superClazzType * the super clazz type */ AbstractManagedType(Class<X> clazz, javax.persistence.metamodel.Type.PersistenceType persistenceType, ManagedType<? super X> superClazzType) { super(clazz, persistenceType); this.superClazzType = superClazzType; bindTypeAnnotations(); if (this.superClazzType != null) { ((AbstractManagedType<? super X>) this.superClazzType).addSubManagedType(this); } this.model = buildInheritenceModel(); entityAnnotationProcessor = new DefaultEntityAnnotationProcessor(clazz); }