final List< Type > types = Arrays.asList( ((ParameterizedType)type).getActualTypeArguments() );
node.setGenericParameterTypes( types );
}
// see if the field has a @Persist( instantiateAs = XXXX.class ) annotation
final Persist annotation = field.getAnnotation( Persist.class );
if( annotation != null )
{
// if no class information is stored in the node, or if the class stored in the
// node is a super class of the instantiate type, then use the instantiate type
final Class< ? > instantiateType = annotation.instantiateAs();
if( !instantiateType.equals( Persist.Null.class ) )
{
final Class< ? > nodeClazz = node.getClazz();
if( nodeClazz == null || ReflectionUtils.isClassOrSuperclass( nodeClazz, instantiateType ) )
{