private String getAttributeString(String name, Object attribute, JadeModel model, JadeTemplate template)
{
String value = null;
if (attribute is String) {
value = getInterpolatedAttributeValue(name, attribute, model, template);
} else if (attribute is bool) {
if ((bool)attribute)
{
value = name;
}
else
{
return "";
}
if (template.isTerse())
{
value = null;
}
} else if (attribute is ExpressionString) {
Object expressionValue = evaluateExpression((ExpressionString)attribute, model);
if (expressionValue == null)
{
return "";
}
// TODO: refactor
if (expressionValue is bool) {
if ((bool)expressionValue)
{
value = name;
}
else
{
return "";
}
if (template.isTerse())
{
value = null;
}
} else {
value = expressionValue.ToString();
value = Utils.escapeHTML(value);
}
} else {
return "";
}
StringBuilder sb = new StringBuilder();
if (name != null)
{
sb.Append(" ").Append(name);
if (value != null)
{
sb.Append("=").Append('"');
sb.Append(value);
sb.Append('"');
}
}
return sb.ToString();
}