in src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/AnnotationDescriptorReader.java [90:123]
private ClassDescriptor createClassDescriptor(Class clazz, Node nodeAnnotation)
{
ClassDescriptor classDescriptor = new ClassDescriptor();
classDescriptor.setClassName(clazz.getName());
classDescriptor.setJcrType(nodeAnnotation.jcrType());
classDescriptor.setDiscriminator(nodeAnnotation.discriminator());
if (nodeAnnotation.jcrSuperTypes() != null && ! nodeAnnotation.jcrSuperTypes().equals(""))
{
classDescriptor.setJcrSuperTypes(nodeAnnotation.jcrSuperTypes());
}
if (nodeAnnotation.jcrMixinTypes() != null && ! nodeAnnotation.jcrMixinTypes().equals(""))
{
classDescriptor.setJcrMixinTypes(nodeAnnotation.jcrMixinTypes());
}
Class ancestorClass = ReflectionUtils.getAncestorClass(clazz);
if (ancestorClass != null)
{
classDescriptor.setExtend(ancestorClass.getName());
}
// TODO : Can we still support the extend param in the annotation @Node if we are using
// the reflection to get the ancestor class ? (see the previous if)
if (nodeAnnotation.extend() != null && ! nodeAnnotation.extend().equals(Object.class))
{
classDescriptor.setExtend(nodeAnnotation.extend().getName());
}
classDescriptor.setAbstract(nodeAnnotation.isAbstract()||ReflectionUtils.isAbstractClass(clazz) );
classDescriptor.setInterface(clazz.isInterface());
return classDescriptor;
}