package ca.uhn.fhir.narrative.template.nodes; import java.util.Arrays; import java.util.Map; import ca.uhn.fhir.narrative.template.LValue; class ContainsNode extends LValue implements LNode { private LNode lhs; private LNode rhs; public ContainsNode(LNode lhs, LNode rhs) { this.lhs = lhs; this.rhs = rhs; } @Override public Object render(Map<String, Object> context) { Object collection = lhs.render(context); Object needle = rhs.render(context); if(super.isArray(collection)) { Object[] array = super.asArray(collection); return Arrays.asList(array).contains(needle); } if(super.isString(collection)) { return super.asString(collection).contains(super.asString(needle)); } return false; } }