String uriEffectStr = (String) def.get("uriEffect", null);
// TODO(mikesamuel): divert IllegalArgumentExceptions to MessageQueue
UriEffect uriEffect = uriEffectStr != null
? UriEffect.valueOf(uriEffectStr) : null;
RegularCriterion elCriterion = criteria.get(elAndAttrib);
RegularCriterion wcCriterion = criteria.get(elAndAttrib.onAnyElement());
RegularCriterion criterion = conjunction(elCriterion, wcCriterion);
String defaultValue = (String) def.get("default", null);
boolean optional = Boolean.TRUE.equals(def.get("optional", true));
String safeValue = (String) def.get("safeValue", null);
if (safeValue == null) {