@SuppressWarnings("unchecked") @Override protected <T> Stream<Object> resolveEventTargets(EventMessage message, T parentEntity, Field field, ForwardingMode eventForwardingMode) { Object fieldVal = ReflectionUtils.getFieldValue(field, parentEntity); return fieldVal == null ? Stream.empty() : eventForwardingMode.filterCandidates(message, Stream.of(fieldVal)); } }
private ForwardingMode instantiateForwardingMode(Field field, EntityModel<Object> childEntityModel, Class<? extends ForwardingMode> forwardingModeClass) { ForwardingMode forwardingMode; try { forwardingMode = forwardingModeClass.newInstance(); forwardingMode.initialize(field, childEntityModel); } catch (InstantiationException | IllegalAccessException e) { throw new AxonConfigurationException( String.format("Failed to instantiate ForwardingMode of type [%s].", forwardingModeClass) ); } return forwardingMode; }
@SuppressWarnings("unchecked") @Override protected <T> Stream<Object> resolveEventTargets(EventMessage message, T parentEntity, Field field, ForwardingMode eventForwardingMode) { Map<?, Object> fieldValue = ReflectionUtils.getFieldValue(field, parentEntity); return fieldValue == null ? Stream.empty() : eventForwardingMode.filterCandidates(message, fieldValue.values().stream()); } }
@SuppressWarnings("unchecked") @Override protected <T> Stream<Object> resolveEventTargets(EventMessage message, T parentEntity, Field field, ForwardingMode eventForwardingMode) { Iterable<Object> fieldValue = ReflectionUtils.getFieldValue(field, parentEntity); return fieldValue == null ? Stream.empty() : eventForwardingMode.filterCandidates(message, StreamSupport.stream(fieldValue.spliterator(), false)); } }