private void processFields(final Object component,final Context context,final ContextDestroyer contextDestroyer){
  Class<?> componentClass=component.getClass();
  while (componentClass != null && !componentClass.equals(Object.class)) {
    final Field[] fields=ClassReflection.getDeclaredFields(componentClass);
    if (fields != null && fields.length > 0) {
      processFields(component,fields,context,contextDestroyer);
    }
    componentClass=componentClass.getSuperclass();
  }
}

private void processFields ( final Object component , final Context context , final ContextDestroyer contextDestroyer ) { Class < ? > componentClass = component . getClass ( ) ; while ( componentClass != null && ! componentClass . equals ( Object . class ) ) { final Field [ ] fields = ClassReflection . getDeclaredFields ( componentClass ) ; if ( fields != null && fields . length > 0 ) { processFields ( component , fields , context , contextDestroyer ) ; } componentClass = componentClass . getSuperclass ( ) ; } }
scans class tree of component to process all its fields .
