private static PredicateGeneratedElementInstance generateElementInstanceForPredicate(
ArchetypeReference ar, OperatorKind op, String idElement, DataValue dv,
Guide guide, DateTime dateTime, boolean resolvePredicates) {
Collection<RuleReference> previousRuleReferences = new ArrayList<>();
ElementInstance elementInstance = ar.getElementInstancesMap().get(idElement);
if (elementInstance instanceof GeneratedElementInstance) {
GeneratedElementInstance generatedElementInstance = (GeneratedElementInstance) elementInstance;
previousRuleReferences.addAll(generatedElementInstance.getRuleReferences());
}
if (dv != null && guide != null && dateTime != null && resolvePredicates) {
dv = ElementInstanceCollectionManager.resolvePredicate(dv, op, Collections.singleton(guide), dateTime.toCalendar(Locale.getDefault()));
}
PredicateGeneratedElementInstance predicateGeneratedElementInstance = new PredicateGeneratedElementInstanceBuilder()
.setId(idElement)
.setDataValue(dv)
.setArchetypeReference(ar)
.setOperatorKind(op)
.createPredicateGeneratedElementInstance();
predicateGeneratedElementInstance.getRuleReferences().addAll(previousRuleReferences);
return predicateGeneratedElementInstance;
}