// useSpecialAttrCollapsing is used here to decide if ispace should
// (by default) be normalized. We do this for Attributes of OutputElements
// and Attribute Bundles (which are essentially for OutputElements) because
// we generally don't want \ns in these cases. We do NOT use alternate
// collapsing rules for Attributes that belong to calls.
Expression newValue = useSpecialAttrCollapsing
? this.with(ATTR_SPACE_OPERATORS).apply(attr.getValue())
: apply(attr.getValue());
Expression newCondition = attr.getCondition();
if (newCondition != null) {
newCondition = apply(newCondition);
}
return attr.withValue(newValue).withCondition(newCondition);