code: private void setContext(ElementContext context) {
          fields.stream()
                  .filter(f -> HasElementContext.class.isAssignableFrom(f.getType())
                          || Element.class.isAssignableFrom(f.getType())
                          || List.class.isAssignableFrom(f.getType()))
                  // TODO: .filter(f -> f.getAnnotation(IndependentContext.class) == null)
                  .map(f -> {
                      try {
                          return f.get(view);
                      } catch (IllegalAccessException e) {
                          throw new DarcyException(String.format("Couldn't retrieve get object " +
                                  "from field, %s, in view, %s", f, view), e);
                      }
                  })
                  .filter(o -> o instanceof HasElementContext)
                  .map(e -> (HasElementContext) e)
                  .forEach(e -> e.setContext(context));
      }
docs: Filters element or list fields, and if their associated objects implement
  {@link com.redhat.darcy.ui.api.HasElementContext}, calls
  {@link com.redhat.darcy.ui.api.HasElementContext#setContext(com.redhat.darcy.ui.api.ElementContext)}
  on those objects with the specified context.