public List<ConnectorObject> match(
final Connector connector,
final Any<?> any,
final Provision provision) {
Optional<? extends PushCorrelationRuleEntity> correlationRule = provision.getResource().getPushPolicy() == null
? Optional.empty()
: provision.getResource().getPushPolicy().getCorrelationRule(provision.getAnyType());
Optional<PushCorrelationRule> rule = Optional.empty();
if (correlationRule.isPresent()) {
try {
rule = ImplementationManager.buildPushCorrelationRule(correlationRule.get().getImplementation());
} catch (Exception e) {
LOG.error("While building {}", correlationRule.get().getImplementation(), e);
}
}
try {
return rule.isPresent()
? findByCorrelationRule(connector, any, provision, rule.get())
: findByConnObjectKey(connector, any, provision);
} catch (RuntimeException e) {
LOG.error("Could not match {} with any existing {}", any, provision.getObjectClass(), e);
return Collections.<ConnectorObject>emptyList();
}
}